C++ 在没有QtDesigner的情况下在Qt中自定义QDockWidget
(我为我糟糕的英语感到抱歉,但我会尽我最大的努力) 我目前尝试自定义几个QdockWidget的样式。我通过找到的唯一解决方案是在QtDesignerView中通过右键单击->set Stylesheet和类似于css的硬代码为对象设置样式表。 遗憾的是,我没有使用QtDesigner,而是在QtCreator的EditorView中编写图形代码 我现在的问题是——是否可以用普通编辑器定制比普通编辑器更好的小部件C++ 在没有QtDesigner的情况下在Qt中自定义QDockWidget,c++,qt,user-interface,customizing,qdockwidget,C++,Qt,User Interface,Customizing,Qdockwidget,(我为我糟糕的英语感到抱歉,但我会尽我最大的努力) 我目前尝试自定义几个QdockWidget的样式。我通过找到的唯一解决方案是在QtDesignerView中通过右键单击->set Stylesheet和类似于css的硬代码为对象设置样式表。 遗憾的是,我没有使用QtDesigner,而是在QtCreator的EditorView中编写图形代码 我现在的问题是——是否可以用普通编辑器定制比普通编辑器更好的小部件 widget.setObjectName("widget") 然后通过构造函数设
widget.setObjectName("widget")
然后通过构造函数设置样式表,如下所示:
this->setStyleSheet(“QDockWidget#widget{背景色:红色;…..)代码>
这适用于简单的按钮,例如,但将十几行线组合成一条线并不是最好的解决方案,不是吗?
我很高兴得到一些提示,因为我在网上找不到太多关于这方面的信息,但我的cpp/Qt knownledge还不是最好的:(
谢谢这可能不是最好的解决方案,但我可能会按照以下思路做一些事情:
- 在.css文件中创建所需的样式表
- 子类
QDockWidget
- 添加使用
QFile
加载/解析.css文件并设置样式等的方法
- 然后我可能会想办法用
QStyle
和其他相关类做一些事情
您可以从程序中调用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("");
事实上,在给出答案之前,我没有仔细阅读您的问题,但我想知道您为什么不能使用Designer。可能您可以在qtDesigner中生成样式表,然后查看表单源,最后复制并粘贴生成的样式表。您最好回到问题并回答试图帮助您的人。这是h阅读垃圾邮件。