我是QT的新手。我开发了一个需要1024 line
的程序,每行有两个按钮,两个单选按钮和两个lalbes。我有两种方法。
我在网络编程中做了第二种方式。这可能在QT?还是那样的东西?
答案 0 :(得分:0)
你在Qt Designer中所做的一切最终都转化为C ++代码,创建对象并将它们相互链接。
因此,获取该代码(查看生成的头文件)并将其置于for循环中是非常简单的。或者甚至自己重新开始,创建三个按钮并将它们添加到布局只需几行代码。
答案 1 :(得分:0)
您可以通过编程方式创建小部件并通过布局调整其位置。 例如,它可能如下所示:
QVBoxLayout *topLayout = new QVBoxLayout();
for (int lineNumber = 0; lineNumber < 1024; ++lineNumber)
{
QWidget *oneLineWidget = new QWidget(this);
QHBoxLayout *oneLineWidgetLayout = new QHBoxLayout();
{ //added these brackets just for the ease of reading.
QLabel *labFirst = new QLabel(tr("first label"), oneLineWidget);
QLabel *labSecond = new QLabel(tr("second label"), oneLineWidget);
QPushButton *bFirst = new QPushButton(tr("first button"), oneLineWidget);
QPushButton *bSecond = new QPushButton(tr("second button"), oneLineWidget);
QRadioButton *rbFirst = new QRadioButton(tr("first radiobutton"), oneLineWidget);
QRadioButton *rbSecond = new QRadioButton(tr("second radiobutton"), oneLineWidget);
oneLineWidgetLayout->addWidget(labFirst);
oneLineWidgetLayout->addWidget(labSecond);
oneLineWidgetLayout->addWidget(bFirst);
oneLineWidgetLayout->addWidget(bSecond);
//lets put one radioButton under another.
QVBoxLayout *radioButtonsLayout = new QVBoxLayout();
{
radioButtonsLayout->addWidget(rbFirst);
radioButtonsLayout->addWidget(rbSecond);
}
//and now we can combine layouts.
oneLineWidgetLayout->addLayout(radioButtonsLayout);
}
oneLineWidget->setLayout(oneLineWidgetLayout);
topLayout->addWidget(oneLineWidget);
}
this->setLayout(topLayout);
您可以使用不同类型的布局(QBoxLayout,QGridLayout,QFormLayout等)。您可以从QLayout documentation开始。有一个继承它的类列表。 我希望它会有所帮助!祝你好运!