6

私はQDialogそれを使って大きく設計されQDesignerています.Webで見たのは、次の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();
}

私の場合でも機能していません..QDialogウィジェットを保持するレイヤーがすでにほとんどない可能性があります。

私の質問は、クラスでプレースホルダーを使用する方法や、クラスQDesignerを保持するウィジェットを何らかの形で促進する方法はありますか? QStatusbarわかりません…</p>

このような場合、どうすればよいですか?new を実装できQStatusbarますか?

ありがとう

4

2 に答える 2

5

次のようにQStatusBarを追加してみてください。

QDialog dialog;
QLayout* layoutWidget = new QVBoxLayout(&dialog);
layoutWidget ->addWidget(new QTextEdit);
QStatusBar* statusBar = new QStatusBar;
layoutWidget ->addWidget(statusBar );
于 2011-05-26T08:24:50.883 に答える