总共三个文件,main.cpp , widget.cpp , widget.h , 亲测过的。
QT5可以实现手动拖拽一些按钮过来,然后链接到槽函数;我里面涉及的 ui->*** ,就是在界面设计里面直接拖拽过来的一些按钮,然后自己定义的名字,这些名字在界面设计的右边直接修改就好了,不用在.h里面中特意命名;
widget.cpp
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
#include "widget.h"
#include "ui_widget.h"
#include "QMenu"
#include "QDebug"
#include <QMouseEvent>
//头文件
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(500,500);
//设置背景图片
this->setAutoFillBackground(true); // 这句要加上, 否则可能显示不出背景图.
QPalette palette = this->palette();
palette.setBrush(QPalette::Window,
QBrush(QPixmap("/Users/mac/Desktop/QTpro/3.jpeg").scaled(// 缩放背景图.
this->size(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation))); // 使用平滑的缩放方式
this->setPalette(palette);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_file_clicked()
{
path = selectFilename();
if(path != nullptr)
{
ui->openfiletext->setText(path);
}
//得到path后读取path内dcm文档的病人名字
ui->name->setText("good");
}
QString Widget::selectFilename()
{
QFileDialog *fileDialog = new QFileDialog(this);//创建一个QFileDialog对象,构造函数中的参数可以有所添加。
fileDialog->setWindowTitle(tr("打开文件"));//设置文件保存对话框的标题
//设置默认文件路径
fileDialog->setDirectory(".");
//设置文件过滤器
fileDialog->setNameFilter(tr("Images(*.dcm *.jpg *.jpeg *.bmp *.mhd *.raw)"));
//设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
fileDialog->setFileMode(QFileDialog::ExistingFiles);//这个地方可以设置选择文件夹,我这里写的是选择文件,可以看源码
//设置视图模式
fileDialog->setViewMode(QFileDialog::Detail);
//还有另一种形式QFileDialog::List,这个只是把文件的文件名以列表的形式显示出来
// fileDialog->setGeometry(10,30,300,200);//设置文件对话框的显示位置
if(fileDialog->exec() == QDialog::Accepted)
{
path = fileDialog->selectedFiles()[0];//得到用户选择的第一个文件名
fileDialog->close();
return path;
}
else
return 0;
}
void Widget::on_help_clicked()
{
QMessageBox::warning(this,tr("hello"),tr("当前版本号:1.1版本"),QMessageBox::Yes);
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include "myThread.h"
#include <QWidget>
#include <QPushButton>
#include "QMenuBar"
#include <QAction>
#include <QVBoxLayout>
#include <QFileDialog>
#include "QMessageBox"
#include "QTextEdit"
#include "QPalette"
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
QString selectFilename();
private slots:
void on_file_clicked();
void on_help_clicked();
private:
Ui::Widget *ui;
QString path ;
};
#endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}