1、在QMainWindow
中使用QAction
:
// ========== mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class
MainWindow
:
public
QMainWindow
{
Q_OBJECT
public
:
MainWindow
(
QWidget *
parent
=
0
)
;
~
MainWindow
(
)
;
private
:
void
open
(
)
;
QAction *
openAction
;
}
;
#endif // MAINWINDOW_H
// ========== mainwindow.cpp
#include <QAction>
#include <QMenuBar>
#include <QMessageBox>
#include <QStatusBar>
#include <QToolBar>
#include "mainwindow.h"
MainWindow
::
MainWindow
(
QWidget *
parent
)
:
QMainWindow
(
parent
)
{
setWindowTitle
(
tr
(
"Main Window"
)
)
;
openAction
=
new
QAction
(
QIcon
(
":/images/doc-open"
)
,
tr
(
"&Open..."
)
,
this
)
;
openAction
->
setShortcuts
(
QKeySequence
::
Open
)
;
openAction
->
setStatusTip
(
tr
(
"Open an existing file"
)
)
;
connect
(
openAction
,
&
QAction
::
triggered
,
this
,
&
MainWindow
::
open
)
;
QMenu *
file
=
menuBar
(
)
->
addMenu
(
tr
(
"&File"
)
)
;
file
->
addAction
(
openAction
)
;
QToolBar *
toolBar
=
addToolBar
(
tr
(
"&File"
)
)
;
toolBar
->
addAction
(
openAction
)
;
statusBar
(
)
;
}
MainWindow
::
~
MainWindow
(
)
{
}
void
MainWindow
::
open
(
)
{
QMessageBox
::
information
(
this
,
tr
(
"Information"
)
,
tr
(
"Open"
)
)
;
}
// ========== main()
int
main
(
int
argc
,
char
*
argv
[
]
)
{
QApplication
app
(
argc
,
argv
)
;
MainWindow
win
;
win
.
show
(
)
;
return
app
.
exec
(
)
;
}
2、QT布局管理器:
int
main
(
int
argc
,
char
*
argv
[
]
)
{
QApplication
app
(
argc
,
argv
)
;
QWidget
window
;
window
.
setWindowTitle
(
"Enter your age"
)
;
QSpinBox *
spinBox
=
new
QSpinBox
(
&
window
)
;
QSlider *
slider
=
new
QSlider
(
Qt
::
Horizontal
,
&
window
)
;
spinBox
->
setRange
(
0
,
130
)
;
slider
->
setRange
(
0
,
130
)
;
QObject
::
connect
(
slider
,
&
QSlider
::
valueChanged
,
spinBox
,
&
QSpinBox
::
setValue
)
;
void
(
QSpinBox
::
*
spinBoxSignal
)
(
int
)
=
&
QSpinBox
::
valueChanged
;
QObject
::
connect
(
spinBox
,
spinBoxSignal
,
slider
,
&
QSlider
::
setValue
)
;
spinBox
->
setValue
(
35
)
;
QHBoxLayout *
layout
=
new
QHBoxLayout
;
layout
->
addWidget
(
spinBox
)
;
layout
->
addWidget
(
slider
)
;
window
.
setLayout
(
layout
)
;
window
.
show
(
)
;
return
app
.
exec
(
)
;
}
运行结果:
3、QT对话框
MainWindow
::
MainWindow
(
QWidget *
parent
)
:
QMainWindow
(
parent
)
{
setWindowTitle
(
tr
(
"Main Window"
)
)
;
openAction
=
new
QAction
(
QIcon
(
":/images/doc-open"
)
,
tr
(
"&Open..."
)
,
this
)
;
openAction
->
setShortcuts
(
QKeySequence
::
Open
)
;
openAction
->
setStatusTip
(
tr
(
"Open an existing file"
)
)
;
connect
(
openAction
,
&
QAction
::
triggered
,
this
,
&
MainWindow
::
open
)
;
QMenu *
file
=
menuBar
(
)
->
addMenu
(
tr
(
"&File"
)
)
;
file
->
addAction
(
openAction
)
;
QToolBar *
toolBar
=
addToolBar
(
tr
(
"&File"
)
)
;
toolBar
->
addAction
(
openAction
)
;
}
MainWindow
::
~
MainWindow
(
)
{
}
void
MainWindow
::
open
(
)
{
QDialog
dialog
;
dialog
.
setWindowTitle
(
tr
(
"Hello, dialog!"
)
)
;
dialog
.
exec
(
)
;
}