0
這是我使用QT/linux的問題的修剪版本。該程序運行,但顯示的小部件的大小是錯誤的(內容,框架+標籤,不適合)。錯誤的大小在Qt小部件+小部件上傳問題
我明白窗戶的大小應該從其內容(兒童)計算出來。爲什麼在這裏沒有正確地發生?
所以第一個問題是,當然這是爲什麼發生。
真正的程序實際上是在運行時更新小部件的內容。我試圖通過插入main_window->show()
(註釋//SHOW1
)來模擬該行爲。如果第一次撥打show()
,則第二個show()
不會顯示小部件的新內容。我試圖與沒有成功更新...
#include <QApplication>
#include <QtCore>
#include <QMainWindow>
#include <QTabWidget>
#include <QWidget>
#include <QGroupBox>
#include <QVBoxLayout>
#include <QLabel>
#include <stdlib.h>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow* main_window = new(QMainWindow);
main_window->setObjectName("main_window");
main_window->resize(800, 600);
main_window->setWindowTitle("Hello");
QTabWidget* node_tab_widget = new QTabWidget(main_window);
// node_tab_widget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
// node_tab_widget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
node_tab_widget->setObjectName(QString::fromUtf8("tab_widget"));
node_tab_widget->resize(500, 400);
QWidget* w= new QWidget(node_tab_widget);
node_tab_widget->addTab(w, "TAB");
//main_window->show(); //SHOW1
QGroupBox* group_widget = new QGroupBox("GROUPNAME", w);
QVBoxLayout* group_layout = new QVBoxLayout;
group_widget->setLayout(group_layout);
group_layout->addWidget((QLabel*)new QLabel(">>>>>>>>>>>>>>>>>>>>>>>>>here1"));
group_layout->addWidget((QLabel*)new QLabel("here2"));
// group_widget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
main_window->update();
main_window->show();
return app.exec();
}
正如我所說的,代碼做什麼應該,但顯示的內容的大小是錯誤的:標籤控件作爲一個非常結束三個bug梅森窗口右上角的小方塊,而兩個標籤不適合它。 Out看起來好像清理大小 – user1159290
看起來大小的計算是錯誤的...對不起,從智能手機寫入 – user1159290
編譯您的代碼(使用Qt 4.8)我得到一個帶有左上角標籤小部件的窗口,大小500x400。該選項卡內有GROUPNAME小部件,組框內部有標籤。看起來對我好。哪個小部件有錯誤的大小?你可以張貼截圖嗎? – Gianluca