2016-10-06 2 views
1

QLineEditを継承するクラスDragQLineEditがあります。QLineEditオブジェクトでStyleSheetを使用できないのはなぜですか?

私はとして配列を定義している:だから私はエディットテキストボックスのグリッドを生成することができる午前

DragQLineEdit m_textEdits[FAVORITE_ROWS][FAVORITE_COLUMNS]; 

。 FINE。

しかし、私はこのような非常に最初のエディットテキストボックスの言う色を変更したい:StyleSheetのという名前なしメンバー:

m_textEdits[0][0].setStyleSheet("QLineEdit { background: rgb(255,255,255); selection-background-color:rgb(233,0,0); }"); 

それは私のコンパイラエラーが発生します。

私はthis質問の受け入れられた答えを読んだ後に上記を行いました。

基本的に、私は次の関数があります。

void Favorites::mySlot(int r,int c,int row,int col) 
{ 
    m_sendButtons[r][c].setText(m_sendButtons[row][col].text()); 
    m_sendButtons[row][col].setText("Send"); 

    m_textEdits[r][c].setStyleSheet(m_textEdits[row][col].StyleSheet); 
    m_textEdits[row][col].setStyleSheet("QLineEdit { background: rgb(255,255,255); selection-background-color:rgb(233,0,0); }"); 
} 
+0

OS /コンパイラ/ Qtのバージョンなどは?あなたは間違いなく公的継承を使っていますか? –

+0

クラスが 'QLineEdit'から継承する方法を共有できますか? – Hayt

+0

あなたのコードは私と一緒にコンパイルします。あなたの 'DragQLineEdit'クラスを教えてください。 –

答えて

3

あなたが持っている...

m_textEdits[r][c].setStyleSheet(m_textEdits[row][col].StyleSheet); 

それがあるべき...

m_textEdits[r][c].setStyleSheet(m_textEdits[row][col].styleSheet()); 

注意を下部ケースの'はstyleSheetに、括弧はstyleSheetの後に関数呼び出しを示します。

+0

しかし、私は1つの問題があります。今はうまく動いていますが、テキストボックスの色は変わりません。 –

+0

もう一度、コードを書くことは難しいですが、あなたはm_textEdits [row] [col] .styleSheet()をすぐに*設定する前に*使用しているようです。 –

関連する問題