PDA

View Full Version : مشکل با QStatusBar



A.iman
سه شنبه 18 تیر 1392, 09:51 صبح
سلام
من یه ویدجت ساده دارم ، و میخام استاتوس بارم ی پیام نشون بده ، ولی کا نمیکنه !؟:عصبانی++::ناراحت:
اینم کد :»
WIdget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QWidget>
#include <QProgressBar>
#include <QStatusBar>

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QStatusBar *nb = new QStatusBar(this);
nb->showMessage("h i all ",200000);
}

Widget::~Widget()
{
delete ui;
}


main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();

return a.exec();
}

omidshaman
سه شنبه 18 تیر 1392, 10:09 صبح
برای این که اصلا Statusbar شما تو هیچ layout ای قرار نگرفته
2 کار می تونین بکنین
1_ به جای QWidget از QMainWindow استفاده کنین که خودش status بار داره
2_ یا توی همین widget یک QVBoxLayout بسازین و StatusBar رو بزارین داخلش

A.iman
سه شنبه 18 تیر 1392, 10:20 صبح
من الان همین کارو کردم ، ولی کار نکرد !
میشه شما یه زحمتی بکشی و روی کامپایلر خودتون بسازی و کدشو بدی به من ؟

omidshaman
سه شنبه 18 تیر 1392, 10:32 صبح
#include "widget.h"
#include "ui_widget.h"
#include <QStatusBar>
#include <QLayout>
#include <QTextBrowser>
widget::widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::widget)
{
ui->setupUi(this);
//
QStatusBar *bar=new QStatusBar(this);
QVBoxLayout *mainLayout=new QVBoxLayout(this);
QTextBrowser *brower=new QTextBrowser();
mainLayout->addWidget(brower);
mainLayout->addWidget(bar);
this->setLayout(mainLayout);
//
bar->showMessage("TEST",2000);

}


widget::~widget()
{
delete ui;
}

البته همون طوری که گفتم ساده ترین کار اینه که به جای QWidget از QMainWindow استفاده کنی...

حامد مصافی
سه شنبه 18 تیر 1392, 13:29 عصر
QStatusBar *bar = ((QMainWindow*)parent)->statusBar();

مطمئن بشید هنگام ساخت ویدجت mainWindow به عنوان parent بهش پاس داده میشه