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 个回复
咖哀烈
提升为子类来愚弄设计师。 但是我认为我们现在还不需要走那条路。我认为对上面的代码进行一些调整应该会有所帮助。 在设计器中,在对话框底部添加一个布局,不管是哪种布局。我叫我的“ StatusBarLayout”。您可以看到布局(底部压缩的红色框)。我在对话框中删除了底部边距,以便状态栏在底部平齐。 现在删除上面代码中有关布局l的所有内容,然后执行以下操作:
是设计师添加的东西。现在,当您运行它时,您应该看到以下内容: 希望对您有所帮助 编辑: 您也可以在设计器中为各种小部件设置“状态提示”,因此除非需要,否则无需在代码中进行设置。
骨酚柯