//!!main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QHBoxLayout>
#include <QMenuBar>
#include <QSlider>
#include <QSpinBox>
#include <QStatusBar>
#include <QToolBar>
int main(int argc, char *argv[])
{
QApplication a(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, SIGNAL(valueChanged(int)),//相互关联
spinBox, SLOT(setValue(int)));
QObject::connect(spinBox, SIGNAL(valueChanged(int)),
slider, SLOT(setValue(int)));
spinBox->setValue(100);//设置初始值
QHBoxLayout *layout = new QHBoxLayout;//排列方式
layout->addWidget(spinBox);
layout->addWidget(slider);
window.setLayout(layout);
window.show();//窗口显示出来。问题:能不能在点击按钮时弹出对话框
MainWindow win;
win.show();
//QMenu *file1 = menuBar()->addMenu(tr("&File"));
// QToolBar *toolBar1 = addToolBar(tr("&File"));
// statusBar();
return a.exec();
}
//!! mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
//QWidget window;
~MainWindow();
private slots:
void open();
void close();
void save();
private:
QAction *openAction;
QAction *closeAction;
QAction *saveAction;
};
#endif // MAINWINDOW_H
//!!mainwindow.cpp
#include <QAction>
#include <QDebug>
#include <QHBoxLayout>
#include <QMenuBar>
#include <QMessageBox>
#include <QStatusBar>
#include <QSlider>
#include <QSpinBox>
#include <QToolBar>
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle(tr("学习之路"));//设置标题名称
openAction = new QAction(QIcon(":/new/hua"),tr("&Open..."), this);//创建新的动作
closeAction = new QAction(QIcon(":/new/sikao"),tr("&Close..."), this);
saveAction = new QAction(QIcon("://chuxu"),tr("&Save..."), this);
openAction->setShortcuts(QKeySequence::Open);//设置快捷键
closeAction->setShortcuts(QKeySequence::Close);
saveAction ->setShortcuts(QKeySequence::Save);
openAction->setStatusTip(tr("打开文件"));//状态栏显示
closeAction->setStatusTip(tr("关闭文件"));
saveAction->setStatusTip(tr("保存文件"));
connect(openAction, SIGNAL(triggered()), this, SLOT(open()));//函数关联
connect(closeAction, SIGNAL(triggered()), this, SLOT(close()));
connect(saveAction, SIGNAL(triggered()), this, SLOT(save()));
QMenu *file = menuBar()->addMenu(tr("&File"));//将菜单栏
file->addAction(openAction);
file->addAction(closeAction);
file->addAction(saveAction);
QToolBar *toolBar = addToolBar(tr("&File"));//工具栏
toolBar->addAction(closeAction);
toolBar->addAction(openAction);
toolBar->addAction(saveAction);
QToolBar *toolBar2 = addToolBar(tr("Tool Bar 2"));//第二个工具栏
toolBar2->addAction(openAction);
statusBar();//状态栏
}
MainWindow::~MainWindow()
{
}
void MainWindow::open()
{
//QMessageBox::information(this, tr("信息"), tr("打开文件"));
//window.show();//为啥在这儿加不行
QDialog dialog;
// dialog->setAttribute(Qt::WA_DeleteOnClose);//函数设置对话框关闭时,自动销毁对话框。
dialog.setWindowTitle(tr("Hello, dialog!"));
// qDebug() << dialog.result();
if (dialog.exec() == QDialog::Accepted) {
qDebug()<<"QDialog::Accepted";
// do something
} else {
qDebug()<<"QDialog::Rejected";
// do something else
}
}
void MainWindow::close()
{
QMessageBox::information(this, tr("信息"), tr("关闭文件"));
}
void MainWindow::save()
{
QMessageBox::information(this, tr("信息"), tr("保存文件"));
}