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