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

  1. 第一个Qt程序
    新建一个空的项目
    Qt常用控件+事件+基础绘图(四)
    .pro文件内容
    Qt常用控件+事件+基础绘图(四)
    示例代码:

    10年积累的网站设计制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有广安免费网站建设让你可以放心的选择与我们合作。

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

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

     1 /* 应用程序抽象类 */ 2 #include  3 #include  4 #include  5 #include  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 }

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

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

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

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

     1 #include  2 #include  3 #include  4 #include  5 #include  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 }

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

  3. 坐标系统
    设置坐标

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

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

     1 #include  2 #include  3 #include  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 }

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

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

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

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

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

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

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

    QGridLayout实现控件居中:

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

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

    QGridLayout实现简单的登录界面:

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

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

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

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

    Button组(QPushButton,QRadioButton, QCombobox,QCheckBox)

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

    效果图:
    Qt常用控件+事件+基础绘图(四)
    QTextEdit基本使用:

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

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

    QGroupBox基本使用:

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

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

    QSlider、QSpinBox基本使用:

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

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

    QLcdnumber基本使用:

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

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

  6. QEvent

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

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

  7. EventFilter

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

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

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

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

  8. QPainter
    覆盖基类的painterEvent虚函数,函数原型为:
    Qt常用控件+事件+基础绘图(四)
    简单的图形绘制:

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

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

     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 }

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

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

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

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

     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 }

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

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

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

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

     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 }

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


本文标题:Qt常用控件+事件+基础绘图(四)
文章来源:http://azwzsj.com/article/pdiodp.html