QT新建Qt Widgets Application项目,需要修改ui控件属性,得在mainwindow这个类中进行修改,如,ui->myQLabel->setText(“this is q1!”)等等,那么怎么在分离出去的类中进行修改呢?下面是一种很好的方法。

开始代码:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include "ChangeUI.h"namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic: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界面的控件中显示?”

QT 如何在其他类中修改UI控件的属性?相关推荐

  1. QT开发之调用其它类中的UI控件的方法

    比如类A和类B, 在B中有一个QTreeWidget控件,需要在A中调用操作 先在A中声明一个 QTreeWidget *tree; 然后在B中声明一个类A的指针 A *a; a->tree = ...

  2. winform中更新UI控件的方案介绍

    这是一个古老的话题...直入主题吧! 对winfrom的控件来说,多线程操作非常容易导致复杂且严重的bug,比如不同线程可能会因场景需要强制设置控件为不同的状态,进而引起并发.加锁.死锁.阻塞等问题. ...

  3. python中tk表格控件的属性_[python] tkinter简介以及各类属性参数总结

    最近用tkinter+pyinstaller+python完成了一个小工具的项目,在过程当中对tkinter做了一定的了解,以此作为记录,方便日后进行查阅,也希望对各位论坛朋友有帮助. 一.tkint ...

  4. android中seekbar 常用属性列表,随笔–android中修改SeekBar控件默认显示-Fun言

    布局文件中相关代码如下: android:id="@+id/seekbar" android:layout_width="match_parent" andro ...

  5. C#:在一个窗体类中改变另一个窗体控件的属性

    例如:要在Form2窗体类中,改变Form1窗体中某控件的属性(内容.尺寸等). 本人所知道的至少有两种方式,第一种方法类似于设置从属关系,具体方式如下: 1.在Form1中添加一个要改变属性的控件, ...

  6. JavaFX UI控件教程(二十八)之UI控件的自定义

    翻译自  Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...

  7. 在 .NET Compact Framework 2.0 中宿主 ActiveX 控件

    适用于: ActiveX Microsoft .NET Compact Framework 版本 2.0 摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件.本文提 ...

  8. JavaFX UI控件教程(二)之JavaFX UI控件

    翻译自  JavaFX UI控件 本章概述了通过API提供的JavaFX UI控件. JavaFX UI控件是使用场景图中的节点构建的.因此,控件可以使用JavaFX平台的视觉丰富功能.由于JavaF ...

  9. C++ Qt中其他类调用窗口中的ui控件

    目录 前言 方法 1 其他类必须继承QWidegt及其派生类 2 将主窗口UI公有化 3 定义一个静态的Widget指针 4 将mywidget指针中的ui指针传给UiOperationDlg.h中我 ...

  10. c#,c++,qt中多线程访问UI控件线程的问题汇总

    c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...

最新文章

  1. 解决KeyError: ‘acc‘ 和KeyError: ‘val_acc‘错误
  2. php跨域cookie共享使用方法
  3. verilog中wire和reg的区别,什么时候用wire?什么时候用reg?
  4. 8条嵌入式C语言编程小知识总结
  5. 【渝粤教育】广东开放大学 性考 形成性考核 (33)
  6. [分享]iOS开发-实现UILabel显示出不同颜色并且某一部分产生下划线的效果 ...
  7. win11WiFi无法连接网络怎么办 Windows11WiFi无法连接网络的解决方法
  8. 《程序猿的搬砖生活》九、那些伙伴和生活,既是人生也是回忆
  9. 【转载】C# WinForm程序中使用Unity3D控件
  10. 用python写一个简单的贪吃蛇游戏(附代码)
  11. excel文件快速撤销工作表保护
  12. MeshLab怎么换背景颜色?
  13. 计算机维护岗位主要职责怎么写,计算机维护岗位职责
  14. 【华人学者风采】聂飞平 西北工业大学
  15. 一文详解 TCP/IP 协议
  16. OSChina 周三乱弹 —— 无他,唯眼熟尔
  17. JAVA基础语法(1)
  18. 哥尼斯堡的“七桥问题” (25分)
  19. 柠檬汁的人生观-李嘉诚
  20. 精致的利己主义者之论,转自知乎

热门文章

  1. 个人怎样出书需要走哪些流程
  2. 计算机ip地址会变吗,电脑IP地址会变吗?
  3. 【黑马程序员】-c函数
  4. 利用泰勒展开式实现sin(x),cos(x)函数
  5. MEMS:万物智联技术关键
  6. 自制力才是你努力的第一步
  7. 。快充的原理有三种:电压不变、提升电流,电流不变,提升电压,电流电压两者都提高。要想达到这三种方式的其中一种,我们都需要对充电头和充电线进行掌控。
  8. 基于 SpringCloud 微服务架构的广告系统(第二部分:广告投放、微服务调用与断路器)
  9. freyja将重新把重心放在orm、sharding、cache上
  10. 阿里云 ECS迁移数据至腾讯云云服务器