【问题标题】:Why can't I use StyleSheet in QLineEdit object?为什么我不能在 QLineEdit 对象中使用 StyleSheet?
【发布时间】:2016-10-06 11:08:19
【问题描述】:

我有一个类DragQLineEdit,它继承了QLineEdit

我已经定义了一个数组:

DragQLineEdit m_textEdits[FAVORITE_ROWS][FAVORITE_COLUMNS];

所以我能够生成一个编辑文本框网格。很好。

但是当我想改变第一个编辑文本框的颜色时,就像这样:

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

它给了我编译器错误:没有名为 StyleSheet 的成员

我在阅读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); }");
}

【问题讨论】:

  • 什么操作系统/编译器/Qt版本等?您确定使用公共继承吗?
  • 你能分享一下这个类是如何继承QLineEdit的吗?
  • 你的代码和我一起编译,你能告诉我们你的DragQLineEdit 类吗?
  • @Hayt 在构建它时给了我这个错误
  • @MoeAbdul-Hameed 在构建时给了我这个错误

标签: qt


【解决方案1】:

你有...

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

应该是……

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

注意styleSheet 中的小写“s”和styleSheet 后面的括号,表示函数调用。

【讨论】:

  • 但我有 1 个问题。它现在运行良好,但文本框的颜色没有改变。
  • 再说一次,如果没有更多代码,很难判断,但是...您似乎在 设置它之前立即使用m_textEdits[row][col].styleSheet()
猜你喜欢
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2011-02-02
  • 2010-10-03
相关资源
最近更新 更多