qt学习:初级代码

来源:互联网 发布:皮卡超人升级数据 编辑:程序博客网 时间:2024/06/06 10:05
//!!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("保存文件"));
}
 
原创粉丝点击