初识QT(向主部件添加对象、Qt中使用类继承)

2023-05-16


第一个QT程序
  
#include <QApplication>
#include <QWidget>
#include <QPushButton>
int main(int argc, char **argv)
{
    QApplication zhuyuantan(argc, argv);//每个QT只能有一个QApplication对象
    QWidget mainWindow;//QWidget可看做一个窗口 ,在上面可以放置如按钮这样的对象
    //设置窗口mainWindow的最大像素和最小像素
    mainWindow.setMinimumSize(200, 100);
    mainWindow.setMaximumSize(200, 100);
    //创建按钮对象 调用构造函数 第一个参数告诉构造函数将按钮标签设置成"hello world!"
  // 第二个参数mainWindow作为父窗口
    QPushButton helloworld("hello world!", &mainWindow);
    //设置串口函数尺寸 这里是将按钮左上角放置在主窗口右边20像素下边20像素的位置
  //,后面两个参数设置按钮的宽度和高度(这里将其设置为160像素宽、60像素高)
    helloworld.setGeometry(20, 20, 160, 60);
    mainWindow.show(); //显示mainWindow,不用掉用hellword的show。mainWindow的show被调用时helloworld也会显示
    return zhuyuantan.exec(); //将控制权传给QT,在exec中QT接受和处理用户及系统事件。并把这些事件传递给相应的窗口,当程序关闭时,exec函数返回
}

Qt中使用类继承
创建QT更多用到类继承,编写QT应用程序大多时候是基于已有的Qt类编写用户类  
#include <QApplication>
#include <QWidget>
class zhuyuantan : public QWidget
{
public:
    zhuyuantan();
};
zhuyuantan::zhuyuantan()
{
//设置未创建的主窗口对象的最大和最小像素
//这样设置的窗口将不能改变窗口大小
    this->setMinimumSize(200, 200);
    this->setMaximumSize(200, 200);
}
int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    zhuyuantan w;
    w.show();
    return a.exec();
}

Qt向主部件添加对象
窗口上没有任何与用户交互的对象,那么程序也没有太大的用处  
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QFont>
class MyMainWindow : public QWidget
{
public:
    MyMainWindow();
private:
    QPushButton *b1;
};
MyMainWindow::MyMainWindow()
{
    setGeometry(100, 100, 200, 120);
    b1 = new QPushButton("Button 1", this);
    b1->setGeometry(20, 20, 160, 80);
    //QPushButton::QFont:格式化按钮上的文本 函数用QFont对象作为参数 QFont的构造函数的三个参数---第一个表示字体、
    //第二个表示定义字体大小 第三个说明将文本加粗 最后一个参数也称为字体的粗细(Weight)。他将文本定义为粗体
    //还可以向构造函数增加第四个选项参数,它为布尔值,用于定义文本是否为斜体。
    // b1->setFont(QFont("Courier", 12, QFont::Light, true)); //这条语句将字体设置为Courier,大小为12像素,文本为细体(与粗体相反)和斜体
    //QFont font("Times", 18, QFont::Bold);//与下面语句相同但更容易理解
    //b1->setFont(font);
    b1->setFont(QFont("Times", 18, QFont::Bold));
}
int main(int argc, char** argv)
{
    QApplication a(argc, argv);
    MyMainWindow w;
    w.show();
    return a.exec();
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初识QT(向主部件添加对象、Qt中使用类继承) 的相关文章

  • STM32F103ZET6和STM32F103C8T6编程不一样吗?

    我把C C 43 43 选项卡中 STM32F10X HD USE STDPERIPH DRIVER 修改为 STM32F10X MD USE STDPERIPH DRIVER 编译成功 谢谢O O 初始化的时候要调用SystemInit
  • STM32F103ZET6和STM32F103C8T6芯片的区别

    是这样的 xff0c 一个具体的STM32F103系列芯片的内存有多大 xff0c 你看一下芯片上的型号就行了 STM32F103XY 注意 xff0c XY是个代号 xff0c X是表示封装有多少个引脚 xff0c 比如 xff0c 如果
  • Keil(MDK-ARM)使用教程——在线调试

    Keil xff08 MDK ARM xff09 使用教程 xff08 三 xff09 在线调试 由于我是直接使用 xff08 打开现有的软件工程 xff09 xff0c 如果跟着需要下载上面演示参考的软件工程 才行 工程默认是使用硬件在线
  • ch340是什么芯片

    CH340 是一个USB 总线的转接芯片 xff0c 实现USB 转串口 USB 转IrDA 红外或者USB 转打印口 在串口方式下 xff0c CH340 提供常用的MODEM联络信号 xff0c 用于为计算机扩展异步串口 xff0c 或
  • Ubuntu16的详细安装教程

    有一点很重要要说一下 xff0c 每个人学习Linux的动机都不一样 xff0c 而这个动机会决定你对Linux的态度 xff0c 如果你仅仅是想尝鲜 xff0c 装个笔什么的 xff0c 不当作自己的职业方向去学习Linux的 劝这类人还
  • 是否能在keil中混合编译c和c++程序

    keil中支持混合编译C和C 43 43 程序 xff0c 因为其本质最终都是编译成汇编 xff0c 所以是可以同时操作的 在混合编译时 xff0c 需要注意以下几点 xff1a 1 C文件扩展名必须为 C xff0c C 43 43 文件
  • ds18b20工作原理和测温原理介绍

    DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器 与传统的热敏电阻相比 xff0c 他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9 xff5e 12位的数字值读数方式 可以分别在9
  • 如何将.hex文件转化为.c文件

    说明楼主太初级 xff0c 迷恋于C 1 C与HEX并不是一一映射的 xff0c 有可能N个人写的C xff0c 会出同一个HEX xff0c 你希望回成哪个人写的呢 xff1f 或许你可能说 xff1a 任意一个孝可以 xff0c 只要能
  • 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?

    作者 xff1a 知乎用户 链接 xff1a https www zhihu com question 53880054 answer 164501004 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • #if 0 ... #endif的真实用途

    在过去都没有去理会 if 的作用 xff0c 今天突发奇想 xff0c 开启编译器试一试 很多人都知道 if 0 endfif的作用跟 的作用是一样的 xff0c 就是注释 xff0c 可是注释为什么不用注释符号 就行了么 xff1f go
  • .hex文件和.bin文件区别

    HEX文件和BIN文件是我们经常碰到的2种文件格式 因为自己也是新手 xff0c 所以一直对这两个文件懵懵懂懂 xff0c 不甚了解 xff0c 最近在做STM32单片机的IAP更新 xff0c 其中要考虑HEX文件和BIN文件 xff0c
  • EEPROM和flash的区别

    From https blog csdn net yuanlulu article details 6163106 EEPROM的全称是 电可擦除可编程只读存储器 xff0c 即Electrically Erasable Programma
  • 264 nal type

    NUAL HEAD 43 43 0 1 2 3 4 5 6 7 43 43 43 43 43 43 43 43 43 F NRI Type 43 43 F xff1d Forbidden zero bit 61 0 NRI 61 Nal r
  • SubClassWindow详解

    许多Windows程序员都是跳过SDK直接进行RAD开发工具 或VC xff0c 我想VC应不属于RAD 的学习 xff0c 有些人可能对子类化机制比较陌生 我们先看看什么是Windows的子类化 Windows给我们或是说给它自己定义了许
  • stl upper_bound函数实现

    写了一个upper bound的实现 其中递归使用二分法求解最上界 xff0c 虽然写的完全不像STL的风格 xff0c 但是练手还是可以的 view plaincopy to clipboardprint 01 include lt io
  • 云原生 - 2、Openstack架构

    云原生 2 Openstack架构 1 什么是Openstack2 Release3 核心架构4 官方入口5 核心组件6 相关文章导读 1 什么是Openstack OpenStack是一个开源的云计算管理平台项目 xff0c 由NASA
  • 关于TrackMouseEvent用法总结

    对于这个函数我也是最近想研究控件自绘才知道它真正怎么用 以前只是见到过 嗯 废话不多说 我先说下我的问题 如何响应鼠标离开某个窗体 控件 事件 先大概讲下步骤 然后再集中对 TrackMouseEvent 进行详解 为按钮添加以下几个函数
  • 关于CComboBox的自绘

    我想 如果大家学过一些控件的自绘的话 CComboBox算是很难的一种了 首先是它本身的复杂度 它由三个控件组成 CEdit CListBox CButton 我想但就CEdit来讲 就够你受得了 还要想想他们之间的消息传递 不禁让人无从下
  • 2011年总结

    又是一年年终时 亦是一年总结时 想想自己从去年写年终总结到现在 已经很久没有写过字了 时间过得真快 又是一年过去了 这一年也是我出来工作的第二年 这一年总体来说自己无论在技术还是心态方面有了很大的进步 记得刚出学校那会 啥都不知道 对于工作
  • 内部链接与外部链接

    在说内部连接与外部连接前 xff0c 先说明一些概念 1 声明 一个声明将一个名称引入一个作用域 在c 43 43 中 xff0c 在一个作用域中重复一个声明是合法的 以下都是声明 xff1a int foo int int 函数前置声明

随机推荐