【Qt】UserInfo

这是一个静态的关于用户信息的界面,首先看一下效果:

接下来是看代码:

<span style="font-family:Microsoft YaHei;font-size:18px;">//dialog.h
#include <QLabel>
#include<QLineEdit>
#include<QComboBox>
#include<QTextEdit>
#include<QGridLayout>

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
private:
    //左侧
    QLabel *UserNameLabel;
    QLabel *NameLabel;
    QLabel *SexLabel;
    QLabel *DepartmentLabel;
    QLabel *AgeLabel;
    QLabel *OtherLabel;
    QLineEdit *UserNameLineEdit;
    QLineEdit *NameLineEdit;
    QComboBox *SexComboBox;//组合框
    QTextEdit *DepartmentTextEdit;
    QLineEdit *AgeLineEdit;
    QGridLayout *LeftLayout;//网格布局

    //右侧
    QLabel *HeadLabel; //右上角部分
    QLabel *HeadIconLabel;
    QPushButton *UpdateHeadBtn;
    QHBoxLayout *TopRightLayout;//水平盒布局

    QLabel *IntroductionLabel;
    QTextEdit *IntroductionTextEdit;
    QVBoxLayout *RightLayout;//垂直盒布局

    //底部
    QPushButton *OkBtn;
    QPushButton *CancelBtn;
    QHBoxLayout *ButtomLayout;

};

#endif // DIALOG_H
</span>

dialog.cpp文件

<span style="font-family:Microsoft YaHei;font-size:18px;">#include<QLabel>
#include<QLineEdit>
#include<QComboBox>
#include<QPushButton>
#include<QFrame>
#include<QGridLayout>
#include<QPixmap>
#include<QHBoxLayout>

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("UsrInfo"));

    //左侧
    UserNameLabel =new QLabel(tr("用户名: "));
    UserNameLineEdit =new QLineEdit;

    NameLabel =new QLabel(tr("姓名:"));
    NameLineEdit = new QLineEdit;

    SexLabel = new QLabel(tr("性别:"));
    SexComboBox =new QComboBox;
    SexComboBox->addItem(tr("女"));
    SexComboBox->addItem(tr("男"));

    DepartmentLabel =new QLabel(tr("部门:"));
    DepartmentTextEdit =new QTextEdit;

    AgeLabel =new QLabel(tr("年龄:"));
    AgeLineEdit =new QLineEdit;

    OtherLabel =new QLabel(tr("备注:"));
    OtherLabel ->setFrameStyle(QFrame::WinPanel|QFrame::Sunken);//设置控件的风格,由形状和阴影两项配合设定

    LeftLayout =new QGridLayout();//因为不是主布局管理器,所以不用指定父窗口
    LeftLayout ->addWidget(UserNameLabel,0,0);  //用户名   向布局里加入需要的控件
    LeftLayout ->addWidget(UserNameLineEdit,0,1);

    LeftLayout->addWidget(NameLabel,1,0); //姓名
    LeftLayout->addWidget(NameLineEdit,1,1);

    LeftLayout->addWidget(SexLabel,2,0);//性别
    LeftLayout->addWidget(SexComboBox,2,1);

    LeftLayout->addWidget(DepartmentLabel,3,0);   //部门
    LeftLayout->addWidget(DepartmentTextEdit,3,1);

    LeftLayout->addWidget(AgeLabel,4,0);//年龄
    LeftLayout->addWidget(AgeLineEdit,4,1);

    LeftLayout->addWidget(OtherLabel,5,0,1,2); //其他,Wifdget(控件名,行,列,占用行数,占用列数)。

    LeftLayout->setColumnStretch(0,1);//设定两列分别占用空间的比例
    LeftLayout->setColumnStretch(1,3);

    //右侧
    HeadLabel =new QLabel(tr("头像:"));
    HeadIconLabel =new QLabel;
    QPixmap icon(":/new/111/312.png");

    HeadIconLabel->setPixmap(icon);
    HeadIconLabel->resize(icon.width(),icon.height());
    UpdateHeadBtn =new QPushButton(tr("更新"));

    TopRightLayout =new QHBoxLayout();//完成右上侧头像的选择区的布局
    TopRightLayout ->setSpacing(20);//设定各个控件之间的间距为20
    TopRightLayout ->addWidget(HeadLabel);
    TopRightLayout ->addWidget(HeadIconLabel);
    TopRightLayout ->addWidget(UpdateHeadBtn);

    IntroductionLabel =new QLabel(tr("个人说明:"));
    IntroductionTextEdit =new QTextEdit;

    RightLayout =new QVBoxLayout();//完成右侧布局
    RightLayout ->setMargin(10);
    RightLayout ->addLayout(TopRightLayout);
    RightLayout ->addWidget(IntroductionLabel);
    RightLayout ->addWidget(IntroductionTextEdit);

    //底部
    OkBtn =new QPushButton(tr("确定"));
    CancelBtn =new QPushButton(tr("取消"));

    ButtomLayout =new QHBoxLayout();//完成下方两个按钮的布局
    ButtomLayout->addStretch();//在按钮之前插入一个占位符,使两个按钮能够靠右对齐,并且按钮大小在调整时不变
    ButtomLayout->addWidget(OkBtn);
    ButtomLayout->addWidget(CancelBtn);

    QGridLayout *mainLayout =new QGridLayout(this);//实现主布局,指定父窗口
    mainLayout->setMargin(15);//设定对话框的边距为15
    mainLayout->setSpacing(10);
    mainLayout->addLayout(LeftLayout,0,0);
    mainLayout->addLayout(RightLayout,0,1);
    mainLayout->addLayout(ButtomLayout,1,0,1,2);
    mainLayout->setSizeConstraint(QLayout::SetFixedSize);//设定最优化显示

    //QHBoxLayout默认采用的是自左向右的方式顺序排列插入控件或子布局,也可以通过调用setDirection()方法设定排列顺序(eg:layout->setDirection(QBoxLayout::RightToLeft)),QVBoxLayout默认的是自上而下的方式顺序插入控件或子布局,也可调用setDirection()方法设定
}

Dialog::~Dialog()
{

}
</span>

这里存在一个问题:

这里如果的路径并不是图片存储的绝对路径,教程里直接是“312.png",这样是不行的,导致图片无法加载出来

解决方法:

右键第一个图标,选择添加新文件,选择如下:

这个名称随意填写

选择所要添加到的项目名称:

在这里首先添加前缀,前缀名可改,然后添加所要添加的文件即图片,然后再出问题的那行代码里添加前缀名即可

结果是完美的!

时间: 2024-11-07 11:53:10

【Qt】UserInfo的相关文章

【QT】找茬外挂制作

找茬外挂制作 找茬游戏大家肯定都很熟悉吧,两张类似的图片,找里面的不同.在下眼神不大好,经常瞪图片半天也找不到区别.于是乎决定做个辅助工具来解放一下自己的双眼. 一.使用工具 Qt:主要是用来做界面的 OpenCV: 用于图像处理 C++: 基本实现语言 Qt中OpenCV的配置在[QT]OpenCV配置中讲过了,不会配置的可以看看. 二.实现方案 我要做一个通用的找茬辅助工具,即可以在所有PC找茬游戏中使用.这意味着我们不能通过获取游戏窗口句柄来定位游戏界面.那怎么办呢?灵光一闪,我想到了截图

【Qt】使用QProcess调用其它程序或脚本

大概试了一下,还是不错的,不过字符编码问题还不太好解决: 代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> #include <QProcess> #include <QTextCodec> #include <QCloseEvent> MainWindow::MainWindow(QWidget *parent)

【Qt 】QSettings写ini配置文件

QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <QTextCodec> IniDemo::IniDemo(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); QSettings settings("setting.ini",QSettings::IniFormat);

【Qt】2.3 使用Qt设计师来创建对话框

安装完Qt OpenSource之后,在开始菜单目录下会有这几个东西. 其中[Designer]是用来设计窗口界面的程序.所以现在可以使用它来设计一个对话框.在[Qt Creator]中,[设计]这一项里也可以做界面的设计. 打开[Designer],会默认弹出[新建窗体],选择[Dialog without Buttons],这会新建出一个没有任何东西的对话框. [Dialog with Buttons Bottom]和[Dialog with Buttons Right]会创建出包含[确定]

【Qt】C++中的循环遍历

介绍 本文主要讨论C++中常见的几种循环遍历操作的语法:基于迭代器.基于Qt库中的foreach关键字.基于C++11新增的for循环语句. 基于迭代器的遍历 在C++容器中经常需要进行遍历操作,在C++11之前一般使用下面这种方式--基于迭代器的遍历: QList<QString> list {"a", "b", "c", "d"}; QList<QString>::const_iterator ci

【Qt】学习笔记(一)

1.setupUi(this) : setupUi(this)是由.ui文件生成的类的构造函数这个函数的作用是对界面进行初始化它按照我们在Qt设计器里设计的样子把窗体画出来 setupUi(this)会自动把符合on_objectName_signalName()命名的任意槽与相应的objectName的signalName()连接在一起.即 void GoToCellDialog::on_lineEdit_textChanged() { okButton->setEnabled(lineEdi

【QT】ui转代码

windows中安装qt目录下的BIN文件夹里有个uic.exe把UIC.exe和你要转换的xxx.ui文件拷贝到同一目录.开始菜单,运行CMD,命令进入uic.exe和xxx.ui的目录,(或在存放文件的目录上右键选择 “Dos在这里”) 运行以下命令:uic xxx.ui -o xxx.h 生成.h文件uic xxx.ui -o xxx.cpp 生成.cpp文件 来源:http://hi.baidu.com/iblogiam/item/ae2e4e15ded50aea9813d6ae 拖了好

【QT】QString类型转换为const char*

Qstring str = "helloworld"; char *s; QByteArray ba = str.toLatin1(); s = ba.data(); toLatin1.toLocal8Bit都是QString转QByteArray的方法,Latin1代表ASCII,Local8Bit代表unicode. const char* 指向字符常量的指针 const char * ss= "xxxxxx";    // 这个表示的是指针指向的内容不可修改c

【QT】对话框打开图像并用QPixmap显示

绘图设备是指继承QPaintDevice的子类,可以使用QPainter直接在其上面绘制图形,Qt一共提供了四个这样继承QPaintDevice的绘图设备类. 分别是QPixmap.QBitmap.QImage和 QPicture. //打开文件对话框 QString lastPath="D:/Englishpath/QTprojects/DATA/videoData"; fileName = QFileDialog::getOpenFileName(this, tr("打开