当前位置: 首页 > article >正文

QT入门知识----2024.8.21-9.28

一.MainWindow、Widget、Dialog区别

MainWindow可以放置菜单栏,工具栏,状态栏,托盘等;

Widget主要放布局和控件;

Dialog对话框

Widget是基类,有一个基本的类似画布的功能,window和dialog是继承类,各自增加了一些功能。

二.窗体Widget的大小缩放

函数

widget1->resize(m_width,m_height);

//该函数使得窗体的大小进行了改变,改变后大小为宽度m_width像素,高度m_height像素。

widget1->setgeometry(m_posx,m_posy,m_width,m_height);

//该函数使得窗体的 位置和大小发生改变,更加的随心所欲。

widget的位置是左上角的坐标,而坐标原点是整个屏幕的左上角, 往右往下为正。

hide()将窗体隐藏 ,由setvisable实现

show()显示

 三.槽函数绑定相关-信号与槽

connect(sender,SIGNAL(bool),receiver,SLOT(int));

这使得不同的控件之间交流更加高效, 当qpush_button被按下或者文本框文本变化或是下拉选择框变化时都会触发信号,从而使得接收者控件因为执行槽函数而改变。

注意,signal和slot两个函数的参数都要有数据类型,但不能有实际的变量。

connect(ui>pushButton_2,&QPushButton::clicked,this,&Widget::onSetBlockedSignalStatus);

就如一些qt的书所言:建议在编写Qt5的代码时使用&类名::函数名的connect方式。 

自定义信号与槽函数:

 在类中声明:

signals:

        void mySignal();//无需定义,只要声明就行

private:

        void mySlots();//槽函数需要定义和声明

然后在cpp文件中connect信号与槽函数,在特定的情况下emit信号就行。

常见的信号有:

combobox.ischecked()//复选框是否被选中

qpushbutton.clicked()//点击 

四.UI指针与this指针

在mainWindow.h中: 

private:
    Ui::MainWindow *ui;

说明ui是UI命名空间中MainWindow的别名指针,它可以访问qt设计师中的各类控件,所以经常有ui->btn等等操作;

而this指针代表当前的MainWindow类,它可以访问这个类中定义的部分控件 

五.格式化输出与读取

setText()可以改变文本内容,字符串需是qstring类型

    ui->textEdit->setText(QString::fromStdString(str));
    ui->textEdit->setText(QString::number(7));
number函数可以将数字转换为QString类型

有时候我们还需要对Double类型的数字进行输出和读取,方法如下:

float a;
QString::number(a,‘f’, 2);  保留两位小数

int a=1;

格式化输出
QString str=QString::number(a).sprintf("%03d",a);
//或者
QString str=QString("%1").arg(a, 3, 10, QChar('0'));

double x=ui->locate_x_lineEdit->text().toDouble();

setStyleSheet可以改变字体或者图片的格式 

 六.焦点改变

focusinEvent()  //当焦点聚焦时

focusoutEvent()  //当焦点离开时

可以据此更改控件的状态

七.寻找控件并删除或隐藏

QStatusBar* pStatusBar = findChild<QStatusBar*>(); //获取状态栏

pStatusBar->setVisible(false);

QList<QPushButton *> parentWidget= parentWidget->findChildren<QPushButton *>();


http://www.kler.cn/a/331253.html

相关文章:

  • LeetCode 343.整数拆分
  • CNN和Transfomer介绍
  • 网络管理 详细讲解
  • [react 3种方法] 获取ant组件ref用ts如何定义?
  • 如何使用vscode解决git冲突
  • 学习“Kotlin编程指南”笔记
  • MongoDB快速实战与基本原理
  • 【LeetCode每日一题】——17.电话号码的字母组合
  • 【易上手快捷开发新框架技术】nicegui组件button用法庖丁解牛深度解读源代码IDE运行和调试通过截图为证
  • 深入理解 CSS 浮动(Float):详尽指南
  • B 私域模式升级:开源技术助力传统经销体系转型
  • C(十)for循环 --- 黑神话情景
  • R语言Shiny包新手教程
  • MongoDB伪分布式部署(mac M2)
  • Bilibili视频如何保存到本地
  • OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(一)
  • 基于微信小程序的校园失物招领系统的设计与实现(论文+源码)_kaic
  • 强化学习核心概念与公式总结
  • 前端登录页面验证码
  • 事件相机(event camera)数据常见处理方法总结
  • 2023_Spark_实验九:编写WordCount程序(Scala版)
  • 在C#中使用Redis实现高效消息队列
  • 物理学基础精解【44】
  • [leetcode]674_最长连续递增序列
  • JavaScript实现接口请求的超时机制方法汇总
  • AIOps案例 | 历史库异常,如何快速响应与优化?