微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Qt:如何实现QDialog StatusBar

如何解决Qt:如何实现QDialog StatusBar

| 我有一个用ѭ1with精心设计的
QDialog
,我在网络上看到可以用以下代码添加
QStatusBar
#include <QDialog>
#include <QStatusBar>
#include <QLayout>
#include <QApplication>
#include <QTextEdit>
#include <QStatusTipEvent>

class Dialog : public QDialog {
public:
Dialog() : QDialog(){
QLayout *l = new QVBoxLayout(this);
QTextEdit *te = new QTextEdit;
te->setStatusTip(\"XXX\");
l->addWidget(te);
bar = new QStatusBar;
l->addWidget(bar);
l->setMargin(0);
l->setSpacing(0);
}
private:
QStatusBar *bar;
protected:
bool event(QEvent *e){
if(e->type()==QEvent::StatusTip){
QStatusTipEvent *ev = (QStatusTipEvent*)e;
bar->showMessage(ev->tip());
return true;
}
return QDialog::event(e);
}
};

int main(int argc,char **argv){
QApplication app(argc,argv);
Dialog dlg;
return dlg.exec();
}
在我的情况下,它甚至无法正常工作..也许already0 lay已经已经有几个存放小部件的拼板。 我的问题是我可以如何在
QDesigner
中使用palceholder或以某种方式提升放置
QStatusbar
类的小部件吗?我不知道 … 在这种情况下我该怎么办?我可以实施新的
QStatusbar
吗? 谢谢     

解决方法

我认为当您说它不起作用时,您在运行时没有看到状态栏。 我看不出有什么办法可以完全在设计师中做到这一点。设计师肯定会拒绝将东西提升到2英镑的想法。我想您可以通过将ѭ2子类化,然后将
QWidget
提升为子类来愚弄设计师。 但是我认为我们现在还不需要走那条路。我认为对上面的代码进行一些调整应该会有所帮助。 在设计器中,在对话框底部添加一个布局,不管是哪种布局。我叫我的“ StatusBarLayout”。您可以看到布局(底部压缩的红色框)。我在对话框中删除了底部边距,以便状态栏在底部平齐。 现在删除上面代码中有关布局l的所有内容,然后执行以下操作:
bar = new QStatusBar(this);
pUI->StatusBarLayout->addWidget(bar);
pUI->textEdit->setStatusTip(\"XXX\");
textEdit
是设计师添加的东西。现在,当您运行它时,您应该看到以下内容: 希望对您有所帮助 编辑: 您也可以在设计器中为各种小部件设置“状态提示”,因此除非需要,否则无需在代码中进行设置。     ,尝试像这样添加QStatusBar:
QDialog dialog;
QLayout* layoutWidget = new QVBoxLayout(&dialog);
layoutWidget ->addWidget(new QTextEdit);
QStatusBar* statusBar = new QStatusBar;
layoutWidget ->addWidget(statusBar );
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。