0

(对不起我的英语不好,但我会尽力而为)

我目前尝试自定义几个QDockWidgets的样式。我通过Qt 文档 - > 样式表找到的唯一解决方案是通过右键鼠标单击在 QtDesignerView 中为对象设置样式表 - > 设置样式表和有点硬代码(看起来类似于 css)。遗憾的是,我不使用 QtDesigner,而是在 QtCreator 的 EditorView 中编写图形内容。

我现在的问题 - 是否可以通过普通编辑器更好地自定义小部件

widget.setObjectName("widget")

然后通过构造函数设置样式表,如下所示:

this->setStyleSheet("QDockWidget#widget{ background-color: red;........}");

这适用于简短的按钮,例如,但将十几行作为字符串放在一起可能不是最好的解决方案吗?我会很高兴有一些提示,因为我在网上找不到太多关于它的信息,但我的 cpp/Qt knownledge 还不是最好的:(

谢谢

4

2 回答 2

1

这可能不是最好的解决方案,但我可能会按照以下方式做一些事情:

  • 在 .css 文件中创建所需的样式表
  • 子类QDockWidget
  • 添加QFile用于加载/解析 .css 文件并设置样式等的方法
  • 然后我可能会喜欢并用QStyle其他相关的类做一些事情
于 2011-08-04T16:18:15.837 回答
0

你从你的程序中调用 setStyleSheet 。

例子:

pb->setStyleSheet(QApplication::translate("failoverCrit", "color: rgb(0, 0, 0);background-color: qlineargradient(spread:pad, x1:0.922018, y1:0.574, x2:0.385321, y2:0.159, stop:0 rgba(106, 106, 106, 255), stop:1 rgba(255, 255, 255, 255));", 0, QApplication::UnicodeUTF8));

示例2:

ui.pbAssign->setStyleSheet(QString::fromUtf8("QPushButton {\n"
     "    border: 1px solid green;"
     "    border-radius: 3px;"
     "    padding: 4px;"
     "    background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:1, y2:0, stop:0 rgb(255,255,153), stop:0.668182 rgba(255, 255, 255, 255));"
     " }\n"
     ""));

删除样式:

ui.pbAssign->setStyleSheet("");
于 2011-08-04T16:54:47.803 回答