QT 如何在其他类中修改UI控件的属性?
2017-09-07 13:02
525 查看
QT新建Qt Widgets Application项目,需要修改ui控件属性,得在mainwindow这个类中进行修改,如,ui->myQLabel->setText(“this is q1!”)等等,那么怎么在分离出去的类中进行修改呢?下面是一种很好的方法。
开始代码:
mainwindow.h
mainwindow.cpp
ChangeUI.h
ChangeUI.cpp
上述就是一个简短的案例了,一般项目都有好多个类,好多个控件操作,初学者就需要好好的推敲琢磨怎么才能运用的更加好了。
上面的方法是将指针赋值的方法,那么我们也可以通过信号和槽的方式进行控件属性的修改,大体意思,就是在其他类中计算出一个值,发个信号到mainwindow中,信号中携带相应参数,mainwindow接受到信号执行槽函数,槽函数中用ui->Q1->setText(“携带的参数”),这种方式进行控件属性的修改,具体可以参考下面这篇文章。进入 “QT,其他类中计算出的结果如何在ui界面的控件中显示?”
开始代码:
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include "ChangeUI.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); ChangeUI * m_changeUI; private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
mainwindow.cpp
#include "MainWindow.h" #include "ui_MainWindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { /* * 实例化对象 * 将控件指针赋值给对象中定义的指针,想改变控件属性,就直接在对象中进行操作就可以了。 */ m_changeUI = new ChangeUI(); m_changeUI->m_q1 = ui->Q1; m_changeUI->m_q2 = ui->Q2; m_changeUI->m_q3 = ui->Q3; m_changeUI->startChange(); }
ChangeUI.h
#ifndef CHANGEUI_H #define CHANGEUI_H #include <QLabel> class ChangeUI { public: ChangeUI(); void startChange(); public: /* * 定义几个QLabel指针 * 这个是将mainwindow中的控件指针赋值给他们的 * 就是将 m_q1 = ui->Q1(在mainwindow中进行) * */ QLabel* m_q1; QLabel* m_q2; QLabel* m_q3; }; #endif // CHANGEUI_H
ChangeUI.cpp
#include "ChangeUI.h" ChangeUI::ChangeUI() { } void ChangeUI::startChange() { /* * 对m_q1设置参数就是对 ui->Q1进行属性设置。 * */ m_q1->setText("this is q1!"); m_q2->setText("this is q2!"); m_q3->setText("this is q3!"); }
上述就是一个简短的案例了,一般项目都有好多个类,好多个控件操作,初学者就需要好好的推敲琢磨怎么才能运用的更加好了。
上面的方法是将指针赋值的方法,那么我们也可以通过信号和槽的方式进行控件属性的修改,大体意思,就是在其他类中计算出一个值,发个信号到mainwindow中,信号中携带相应参数,mainwindow接受到信号执行槽函数,槽函数中用ui->Q1->setText(“携带的参数”),这种方式进行控件属性的修改,具体可以参考下面这篇文章。进入 “QT,其他类中计算出的结果如何在ui界面的控件中显示?”
相关文章推荐
- WPF中如何在Xaml里通过Trigger修改该其他控件的属性
- WPF中如何在Xaml里通过Trigger修改该其他控件的属性
- qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小
- ListView中item控件修改其他控件属性
- 如何获得其他程序的EDIT控件中的内容并修改
- IOS 关于如何修改facebook内部封装好的控件属性(如何修改封装好的控件)
- 关于线程中修改UI的控件属性
- 如何批量修改流程中同一属性控件的错误命名
- 问题:如何在win窗体中更改其他win窗体控件的属性?
- QT,其他类中计算出的结果如何在ui界面的控件中显示?
- UI技巧 批量修改控件属性
- 关于如何在 Unity 的 UI 菜单中默认创建出的控件 Raycast Target 属性默认为 false
- qt使用样式表修改控件属性
- QT中如何使ui中的控件随窗口改变大小?
- qt 控件属性修改
- 其他类调用C#控件并修改属性的方法
- 委托 在其他类中修改form中的控件属性
- 如何在其他线程中修改主UI属性及对象元素特性
- 在oc中如何修改控件的一些只读属性
- UIView控件 、 autolayout 、transform属性及如何修改控件的位置和尺寸