gpt4 book ai didi

c++ - Qt 有没有办法获取表单上的所有小部件?

转载 作者:行者123 更新时间:2023-12-03 07:30:08 26 4
gpt4 key购买 nike

例如,我在一个表单上有 20 个小部件。我需要根据屏幕分辨率调整它们的大小,所以这是我的方法

newHeight=(desktopHeight * ui->widget1->height())/768;
newWidth=(desktopWidth * ui->widget1->width())/1024;
newY=(desktopHeight * ui->widget1->y())/768;
newX=(desktopWidth * ui->widget1->x())/1024;
ui->widget1->setGeometry(newX,
newY,
newWidth,
newHeight);
newFontSize=(desktopHeight * ui->widget1->font().pointSize())/768;
ui->widget1->setFont(QFont ("Ubuntu",newFontSize, QFont::Bold));

我将对其余 19 个小部件重复此方法。有没有办法获取所有小部件并创建 do while 语句并创建一个以小部件为参数的函数?

最佳答案

所有小部件都附加到表单或窗口吗?

您可以从 UI 父窗口小部件中获取所有子窗口小部件,然后迭代子窗口集合。

根据您的小部件层次结构,您应该执行类似的操作

QObjectList *widgetList = parentWidget->findChildren();

根据您的具体情况:

QObjectList *widgetList = ui->centralWidget->findChildren();

编辑:如果没有其余的代码,我不知道 ui 代表什么,因此我的通用答案。我假设你的用户界面是一个主窗口,如下我的代码

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QObjectList widgetList = ui->centralWidget->children();
qDebug() << "Amount of children found :" << widgetList.count();

}

关于c++ - Qt 有没有办法获取表单上的所有小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com