Qt Creator 显示时间 退出界面 产生新的界面 上传本地文件界面

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QDateTime>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    QTimer qtimer;

private slots:
    void ExeClose();
    void TimerProc();
    void ReLogin();
};

#endif // MAINWINDOW_H

mainwindow.h

#include "mainwindow.h"
#include "login.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(ExeClose()));
    connect(ui->actionRelogin, SIGNAL(triggered()), this, SLOT(ReLogin()));

    connect(&qtimer,SIGNAL(timeout()),SLOT(TimerProc()));
    qtimer.start(1000);
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::ExeClose()
{
    ui->statusBar->showMessage("Close MainWindow", 3000);
    close();
}

void MainWindow::TimerProc()
{
    ui->statusBar->showMessage(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss zzz"));
}

void MainWindow::ReLogin()
{
    Login * LoginFrm = new Login(this);
    LoginFrm->setModal(true);
    LoginFrm->showNormal();
}

mainwindow.cpp

设置新界面

#ifndef LOGIN_H
#define LOGIN_H

#include <QDialog>
#include <QLineEdit>
#include <QGridLayout>
#include <QPushButton>
#include <QFileDialog>

namespace Ui {
class Login;
}

class Login : public QDialog
{
    Q_OBJECT

public:
    explicit Login(QWidget *parent = 0);
    ~Login();

private:
    Ui::Login * ui;
    QLineEdit * p_lineEdit;
    QGridLayout * p_MainLayOut;
    QPushButton * p_QPushButton;

private slots:
    void ShowFile();
};

#endif // LOGIN_H

login.h

扫描二维码关注公众号,回复: 11002273 查看本文章
#include "login.h"
#include "ui_login.h"

Login::Login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Login)
{
    ui->setupUi(this);

    p_lineEdit = new QLineEdit(this);
    p_MainLayOut = new QGridLayout(this);
    p_QPushButton = new QPushButton(this);

    p_MainLayOut->addWidget(p_lineEdit, 0, 0);
    p_MainLayOut->addWidget(p_QPushButton, 0, 1);
    connect(p_QPushButton, SIGNAL(clicked()), this, SLOT(ShowFile()));
}

Login::~Login()
{
    delete ui;
}

void Login::ShowFile()
{
    QString FileName  = QFileDialog::getOpenFileName(0, "打开文件", "", "C++ Files(*.cpp)");
    p_lineEdit->setText(FileName);

}

login.cpp

ui 界面代码 

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>898</width>
    <height>563</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralWidget"/>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>898</width>
     <height>23</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
    <addaction name="actionSave"/>
    <addaction name="actionSave_2"/>
    <addaction name="separator"/>
    <addaction name="actionRelogin"/>
   </widget>
   <widget class="QMenu" name="menuClose">
    <property name="title">
     <string>Close</string>
    </property>
    <addaction name="actionClose"/>
   </widget>
   <addaction name="menuFile"/>
   <addaction name="menuClose"/>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
  <action name="actionSave">
   <property name="text">
    <string>Open</string>
   </property>
  </action>
  <action name="actionSave_2">
   <property name="text">
    <string>Save</string>
   </property>
  </action>
  <action name="actionRelogin">
   <property name="text">
    <string>ReLogin</string>
   </property>
  </action>
  <action name="actionClose">
   <property name="text">
    <string>Close</string>
   </property>
  </action>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>

mainwindow.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Login</class>
 <widget class="QDialog" name="Login">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Dialog</string>
  </property>
  <widget class="QDialogButtonBox" name="buttonBox">
   <property name="geometry">
    <rect>
     <x>30</x>
     <y>240</y>
     <width>341</width>
     <height>32</height>
    </rect>
   </property>
   <property name="orientation">
    <enum>Qt::Horizontal</enum>
   </property>
   <property name="standardButtons">
    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections>
  <connection>
   <sender>buttonBox</sender>
   <signal>accepted()</signal>
   <receiver>Login</receiver>
   <slot>accept()</slot>
   <hints>
    <hint type="sourcelabel">
     <x>248</x>
     <y>254</y>
    </hint>
    <hint type="destinationlabel">
     <x>157</x>
     <y>274</y>
    </hint>
   </hints>
  </connection>
  <connection>
   <sender>buttonBox</sender>
   <signal>rejected()</signal>
   <receiver>Login</receiver>
   <slot>reject()</slot>
   <hints>
    <hint type="sourcelabel">
     <x>316</x>
     <y>260</y>
    </hint>
    <hint type="destinationlabel">
     <x>286</x>
     <y>274</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>

login.ui

最后主函数  main.cpp

#include "mainwindow.h"
#include <QApplication>
#include "login.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

    ///*
    Login * LoginFrm = new Login();
    LoginFrm->setModal(true);
    LoginFrm->show();
    //*/

    w.show();
    return a.exec();
}

运行结果如下

1.显示时间

2.退出界面

3.产生新窗口 和 上传本地文件

自己还是太菜 害

发布了218 篇原创文章 · 获赞 309 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/qq_42777804/article/details/102629854
今日推荐