qt所有widget都有黑框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt所有widget都有黑框相关的知识,希望对你有一定的参考价值。
参考技术A qt所有widget都有黑框Qt的所有widget都有默认的边框,但是可以设置为任何颜色,或者完全移除边框。要移除边框,可以使用QWidget的setFrameStyle()函数,其参数设置为QFrame::NoFrame:
widget->setFrameStyle(QFrame::NoFrame); 参考技术B Qt的所有widget都可以使用边框或黑框来突出重要内容,具体取决于你在设置中配置的样式。 参考技术C 不是,Qt中的widget并不一定会有黑框,它取决于你使用的主题和样式表。
如何隐藏在 qt 中生成信号的小部件
【中文标题】如何隐藏在 qt 中生成信号的小部件【英文标题】:how can I hide a widget that generated a signal in qt 【发布时间】:2011-05-21 22:38:15 【问题描述】:假设我们有多个小部件,并且所有小部件都有主菜单按钮。所以我将所有主菜单按钮点击信号连接到一个插槽,这应该是 h
connect(widget1->mainMenuButton, SIGNAL(clicked()),this, SLOT(mainClicked()));
connect(widget1->mainMenuButton, SIGNAL(clicked()),this, SLOT(mainClicked()));
我有
private slots:
void mainClicked();
在 mainClicked 中,我想隐藏触发点击信号的人。上例中的 frame1 或 frame2。
我可以使用 sender() 来检索触发信号的 QObject,但是如何调用 hide 哪个是 QWidget 函数?
感谢您的帮助。
【问题讨论】:
【参考方案1】:我认为这应该可行:
dynamic_cast<QWidget*>(sender()) -> hide() ;
【讨论】:
thx 我做了这个 QObject caller = sender()->parent(); ((QWidget)caller)->hide();因为发件人将是小部件的孩子 qobject_cast看看QSignalMapper
类。基本上你将你的两个小部件的clicked()
信号连接到信号映射器的map()
插槽,它发出一个mapped(QWidget*)
信号,你连接到你的mainClicked(QWidget*)
插槽并且你让小部件通过,它发出@ 987654326@信号(其实可以自己配置参数)。 Qt 文档可以告诉您更多信息。
【讨论】:
以上是关于qt所有widget都有黑框的主要内容,如果未能解决你的问题,请参考以下文章