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