QT demo

1、main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <QLabel>
#include <QDebug>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

    QLabel label(&w);
    label.setText("label");
    label.move(0, 20);
    label.show();

    QPushButton button2(&w);
    button2.setText("button2");
    button2.show();
    button2.move(30, 250);

    w.resize(800, 600);
    w.setWindowTitle("hello");
    w.show();

    qDebug("Mainwindow x:%d y:%d w:%d h:%d", w.x(), w.y(), w.width(), w.height());

    return a.exec();
}

2、mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
#include <QPainter>
#include <QPushButton>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    timer_id1 = startTimer(1000);

    button1.setParent(this);
    button1.setText("button1");
    button1.resize(80, 30);
    button1.move(30, 150);
    button1.show();
    connect(&button1, SIGNAL(clicked()), this, SLOT(my_button_clicked()));
    //connect(&button1, &QPushButton::clicked, this, &MainWindow::my_button_clicked);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    qDebug("button clicked.");
}

void MainWindow::on_pushButton_clicked(bool checked)
{
    qDebug("button clicked %d", checked);
    if(true == checked)
    {
        QDialog *dialog = new QDialog(this);
        dialog->show();
    }
}

void MainWindow::my_button_clicked()
{
    qDebug("my_button clicked.");
}

void MainWindow::timerEvent(QTimerEvent *event)
{
    static int time = 0;

    if(event->timerId() == timer_id1){
        time++;
        qDebug("timer1:%d", time);
    }
}

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.drawLine(QPoint(0, 0), QPoint(100, 100));

    QPen pen(Qt::green, 5, Qt::DotLine, Qt::RoundCap, Qt::RoundJoin);
    painter.setPen(pen);

    QRectF rectangle(10, 40, 80, 60);
    int startAngle = 90*16;
    int spanAangle = 270*16;
    painter.drawArc(rectangle, startAngle, spanAangle);

    pen.setWidth(2);
    pen.setStyle(Qt::SolidLine);
    painter.setPen(pen);
    painter.drawRect(120, 30, 50, 40);

    QBrush brush(QColor(0, 0, 255));
    painter.setBrush(brush);
    painter.drawEllipse(220, 20, 50, 50);

    QRectF rect(250, 100, 300, 200);
    painter.setPen(Qt::blue);
    painter.drawText(rect, Qt::AlignHCenter, tr("AlignHCenter"));
    painter.drawText(rect, Qt::AlignLeft, tr("AlignLeft"));

    QFont font("consolas", 15, QFont::Bold, true);
    font.setUnderline(true);
    font.setOverline(true);
    font.setCapitalization(QFont::SmallCaps);
    font.setLetterSpacing(QFont::AbsoluteSpacing, 10);
    painter.setFont(font);
    painter.setPen(Qt::red);
    painter.drawText(300, 80, tr("linux"));

    QImage image;
    image.load("res/test.PNG");
    qDebug("image size:%d, format:%d, depth:%d", image.size(), image.format(), image.depth());
    painter.drawImage(QPoint(300, 200), image);
}

3、mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:

private slots:
    void on_pushButton_clicked();

    void on_pushButton_clicked(bool checked);

    void my_button_clicked();

protected:
    void timerEvent(QTimerEvent *event);
    void paintEvent(QPaintEvent *event);

private:
    Ui::MainWindow *ui;
    int timer_id1;
    QPushButton button1;
};

#endif // MAINWINDOW_H

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值