Qt常用控件+事件+基础绘图(四)

  1. 第一个Qt程序
    新建一个空的项目

    .pro文件内容

    示例代码:

     1 /* 应用程序抽象类 */ 2 #include <QApplication> 3 #include <QWidget> 4 #include <QPushButton> 5 #include <QDebug> 6  7 int main(int argc, char *argv[]) 8 { 9     QApplication app(argc, argv);10 11     QWidget w;12     w.show();13     w.setWindowTitle("你好,世界!"); // Qt 5不存在乱码的问题了14 15     QPushButton btn("button");16     btn.setParent(&w); // 不设置父对象,那么按钮也就是一个独立的窗口17     btn.show();18 19     QObject::connect(&btn, QPushButton::clicked, [](){20         qDebug() << "button is clicked..." << endl;21     });22 23     return app.exec();24 }

  2. QLineEdit常用功能
    设置输入密码
    设置提示文字
    设置自动匹配
    示例代码:

     1 #include <QApplication> 2 #include <QLineEdit> 3 #include <QDebug> 4 #include <QCompleter> 5 #include <QWidget> 6  7 int main(int argc, char *argv[]) 8 { 9     QApplication app(argc, argv);10 11     QLineEdit lineEdit;12     /* 显示模式 enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit }; */13     //lineEdit.setEchoMode(QLineEdit::PasswordEchoOnEdit); // 失去焦点时候变为密文14 15     /* 淘汰传统的输入之后还要点击按钮 */16     QObject::connect(&lineEdit, QLineEdit::returnPressed, [](){17         qDebug() << "You have entered the return key...";18     });19 20     /* 自动补全 只有echomode设置为Normal时completer才有效 */21     QCompleter completer(QStringList() << "aa" << "abc" << "123");22     completer.setFilterMode(Qt::MatchContains); // 包含匹配 比如:输入b也会匹配abc23     lineEdit.setCompleter(&completer);24 25     /* lineEdit设置提示文字 */26     lineEdit.setPlaceholderText("Please input text:");27 28     lineEdit.show();29 30     return app.exec();31 }

  3. 坐标系统
    设置坐标

     1 #include <QApplication> 2 #include <QWidget> 3 #include <QPushButton> 4  5 int main(int argc, char* argv[]) 6 { 7     QApplication app(argc, argv); 8  9     /* 构造一个窗口*/10     QWidget w;11 12     /*显示窗口*/13     w.show();14 15     /* 按钮也是个窗口 */16     QPushButton button;17     button.setText("Button");18     /* 窗口对象的父子关系,影响显示位置 */19     /* 没有父窗口的窗口,我们称之为主窗口 */20     button.setParent(&w);21     button.show();22 23     button.setGeometry(30, 30, 100, 30);24 25     return app.exec();26 }

  4. 布局Layout
    QHBoxLayout简单实现控件居中:

     main.cpp

    效果图:

    QHBoxLayout实现居中并且设置控件比重:

     main.cpp

    效果图:

    QGridLayout实现控件居中:

     main.cpp

    效果图:

    QGridLayout实现简单的登录界面:

     main.cpp

    效果图:

  5. 常用控件的基本使用
    QLabel

     QLabel.cpp

    Button组(QPushButton,QRadioButton, QCombobox,QCheckBox)

     Button.cpp

    效果图:

    QTextEdit基本使用:

     QTextEdit.cpp

    效果图:

    QGroupBox基本使用:

     QGroupBox.cpp

    效果图:

    QSlider、QSpinBox基本使用:

     QSpinBoxAndQSlider.cpp

    效果图:

    QLCDNumber基本使用:

     QLCDNumber.cpp

    效果图:

  6. QEvent

     MyEvent.h

     MyEvent.cpp

  7. EventFilter

     MyApplication.h

     MyApplication.cpp

     MyWidget.h

     MyWidget.cpp

  8. QPainter
    覆盖基类的painterEvent虚函数,函数原型为:

    简单的图形绘制:

     1 void MyWidget::paintEvent(QPaintEvent *) 2 { 3     // 简单的绘制 4     QPainter p(this); 5     //p.drawArc(100, 100, 20, 20, 10, 10); 6     p.drawLine(QPointF(100, 100), QPointF(200, 200)); 7     p.setPen(QPen(QColor("red"))); 8     p.setBrush(Qt::yellow); // 画刷是代表封闭图形的内部填充 9     p.drawRect(QRect(200, 200, 220, 220));10     p.setRenderHint(QPainter::Antialiasing); // 变得圆润一些11     p.drawEllipse(QPointF(150, 150), 40, 40);12     p.drawText(QPointF(250, 250), "Hello Qt");13 }

    通过变换集来存储所有的变换:

     1 { 2   // 通过变换集来存放所有的变换 3     QPainter p(this); 4     QTransform trans; 5     //trans.rotate(88.0, Qt::YAxis); 6     //trans.translate(100, 300); 7     trans.scale(3, 3); 8     p.setTransform(trans); 9     p.drawLine(100, 100, 200, 100);      
    10 }

    先画一张图,然后将该图绘制到窗口上:

     1 {    
     2     // 先画一张图,然后将图绘制到窗口 3     QPixmap pixmap(size()); // pixmap默认的是黑色背景 4     QPainter p(&pixmap); 5  6     // 想着设置pixmap背景为白色,并不能实现,需要通过以下方法 7     //p.setBackground(QBrush(Qt::white));  8     p.setBrush(Qt::white); 9     p.drawRect(0, 0, size().width(), size().height());10     p.drawLine(QPointF(100, 100), QPointF(200, 200));11     p.setPen(QPen(QColor("red")));12     p.setBrush(Qt::yellow); // 画刷是代表封闭图形的内部填充13     p.drawRect(QRect(200, 200, 220, 220));14 15     p.end();16     p.begin(this); // 开始绘制窗口17     p.drawPixmap(0, 0, pixmap);18 }

时间: 2024-08-01 23:07:12

Qt常用控件+事件+基础绘图(四)的相关文章

二、Qt常用控件

#ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include <QTextEdit> class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); QTextEdit* _edit; signals: public slots: void slotComboBoxIndexChanged(con

QT 常用控件

QWidget 创建窗口 如果widget未使用腹肌进行创建,则在显示时视为窗口或顶层widget. 由于顶层widget没有父级对象类来确保在其不再使用时删除,所以需要开发人员在应用程序中对其进程跟踪. 在本例中,使用QWidget创建和显示具有默认大小的窗口 QWidget *win=new QWidget(); win->resize(320,240); win_>show(); QPushButtopn *btn1=new QPushButton(tr("press me&q

C# 常用控件及单击事件

1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2)WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: Normal (窗体正常显示). Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示). (3)StartPosition属性:用来获取或设置运行时窗体的起始位置.(System.Windows.Forms.SystemInformation.WindowsArea.

IOS开发基础常用控件简介

在IOS开发中,各类控件完美的解决了开发过程中界面与交互展现的问题,使得IOS产品界面更加灵活实用,IOS常用控件的介绍如下. 1.窗口 UIWindow iPhone的规则是一个窗口,多个视图,窗口是你在app显示出来你看到的最底层,他是固定不变的,基本上可以不怎么理会,但要知道每层是怎样的架构. 2.视图 UIView, 是用户构建界面的基础,所有的控件都是在这个页面上画出来的,你可以把它当成是一个画布,你可以通过UIView增加控件,并利用控件和用户进行交互和传递数据. 窗口和视图是最基本

MFC之常用控件(四)

常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控件.列表控件.树形控件和进度条控件等等.本节教程先来讲解静态文本框的使用. 控件的通知消息 在将静态文本框的使用之前,先大概讲讲控件的通知消息. 当控件有事件发生时,它会向父窗口发送通知消息.最常发生的事件就是鼠标单击了,此时控件会向父窗口发送BN_CLICKED消息,实际上也就是给父窗口发送WM_COMMAND消息,在wParam参数中包含有通知消息码(鼠标单击时的通知消息码就是BN_CLICKED)和控件I

五、Android学习第四天补充——Android的常用控件(转)

(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的Android的几个常用控件的使用方法: 一.RadioGroup和RadioButton——单选按钮 二.Checkbox——复选框 三.Toast——提示框,会自动消失 四.ProgressBar——进度条工具 五.ListView——以列表形式将控件显示出来 下面就对这些内容做个详细的解释: 首

android快速上手(三)常用控件使用

完成了android的第一个程序HelloWorld,下面就开始控件的学习,下面是一些常见的控件. (一)TextView 简单的文本描述 (二)EditText 编辑框,输入文字信息 (三)Button 按钮,点击后会触发点击事件,可以对事件进行处理 (四)ImageView 图片控件,可以加载图片显示 (五)ListView 列表,需要跟适配器Adapter结合,适配器提供数据 (六)Toast 闪现提示语,常用于普通的提示文本,只显示一小段时间自动消失 (七)ScrollView 一般用于

Windows 8.1 应用再出发 - 几种常用控件

原文:Windows 8.1 应用再出发 - 几种常用控件 本篇为大家简单介绍Windows 商店应用中控件的用法,为方便讲解,我们在文本控件和按钮控件这两类中分别挑选有代表性的控件进行详细说明. 1. 文本控件 (1) TextBlock TextBlock是最常用的文本显示控件,重点关注以下属性: CharacterSpacing  字符之前的统一间距,间距 = 字体大小 / 1000.默认为0,正值增进跟踪和放宽字符间距.负值减少跟踪和收紧字符调间距. IsColorFontEnabled

WPF常用控件总结及其应用demo

WPF常用控件总结及其应用 一.控件 1.WrapPanel布局控件:可以实现当空间不足时子控件自动往下一行布局,空间充足时又会自动调整行布局.常用布局控件还有StackPanel(设置其子元素是垂直排列还是水平排列).Grid(通过定义行和列来绘制出一个表格).Canvas(通过指定相对于其的坐标来指定子控件的位置).DockPanel(设置其子元素如何停靠,DockPanel.Left.DockPanel.Right.DockPanel.Top.DockPanel.Bottom). 2.Sc