Skip to content

Commit 9cbdb40

Browse files
committed
[example] 9x9 table
0 parents  commit 9cbdb40

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build/

CMakeLists.txt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
cmake_minimum_required(VERSION 3.12)
2+
3+
set(CMAKE_CXX_STANDARD 17)
4+
set(CMAKE_AUTOMOC ON)
5+
set(CMAKE_AUTORCC ON)
6+
set(CMAKE_AUTOUIC ON)
7+
8+
project(qtguide)
9+
10+
find_package(Qt5 REQUIRED COMPONENTS Core Widgets REQUIRED)
11+
12+
file(GLOB sources *.cpp)
13+
add_executable(qtguide ${sources})
14+
target_link_libraries(qtguide PRIVATE Qt5::Core Qt5::Widgets)

main.cpp

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#include <QApplication>
2+
#include <QMainWindow>
3+
#include <QDebug>
4+
#include <QGridLayout>
5+
#include <QLabel>
6+
7+
// QObject -> QWidget -> QLabel, QMainWindow, QPushButton, QComboBox, ...
8+
9+
class Label : public QLabel
10+
{
11+
public:
12+
explicit Label(QWidget *parent = nullptr)
13+
: QLabel(parent)
14+
{
15+
setAlignment(Qt::AlignCenter);
16+
setStyleSheet(R"(
17+
QLabel {
18+
margin: 20px;
19+
font-size: 40px;
20+
}
21+
)");
22+
}
23+
};
24+
25+
class MainWindow : public QMainWindow
26+
{
27+
public:
28+
explicit MainWindow(QWidget *parent = nullptr)
29+
: QMainWindow(parent)
30+
{
31+
setWindowTitle("宝宝乘法表");
32+
33+
setCentralWidget(new QWidget);
34+
QGridLayout *layout = new QGridLayout;
35+
centralWidget()->setLayout(layout);
36+
37+
for (int i = 1; i <= 9; ++i) {
38+
for (int j = 1; j <= 9; ++j) {
39+
Label *label = new Label;
40+
label->setText(QString("%1*%2=%3").arg(i).arg(j).arg(i * j));
41+
layout->addWidget(label, i - 1, j - 1);
42+
}
43+
}
44+
}
45+
46+
};
47+
48+
int main(int argc, char **argv)
49+
{
50+
QApplication app(argc, argv);
51+
MainWindow win;
52+
win.show();
53+
return app.exec();
54+
}

0 commit comments

Comments
 (0)