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 );
    

要回复问题请先登录注册