当前位置: 首页 > article >正文

QT:常用类与组件

1.设计QQ的界面

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>

//自定义类Widget,采用public方式继承QWidget,该类封装了图形化界面的相关操作,相当于自定义类也有了相关操作
class Widget : public QWidget
{
    Q_OBJECT     //信号与槽的宏,若没有该宏,信号与槽不能使用

public:
    Widget(QWidget *parent = nullptr);  //构造函数声明,带默认参数
    ~Widget();
};
#endif // WIDGET_H

main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);  /采用QApplication 的有参构造实例化一个对象,
    Widget w;    //采用自定义Widget的无参构造实例化对象
    w.show();     //该对象调用显示函数
    return a.exec();
}
widget.cpp
#include "widget.h"

Widget::Widget(QWidget *parent)   //自定义类的构造函数,在初始化列表中显式调用父类QWidget的有参构造进行初始化
    : QWidget(parent)        //自定义中的Ui指针成员申请空间
{

    this->resize(800,600);
    this->setWindowTitle("QQ");
    this->setWindowIcon(QIcon("D:\\Project\\图标\\QQ.png"));


    QLabel *lab1=new QLabel(this);
    lab1->setPixmap(QPixmap("D:\\Project\\图标\\R.jfif"));
    lab1->resize(800,250);

    QLabel *lab2=new QLabel(this);
    lab2->setPixmap(QPixmap("D:\\Project\\图标\\3.jpg"));
    lab2->move(150,350);
    lab2->resize(100,100);



    QLabel *lab3=new QLabel(this);
    lab3->setText("账号:");
    lab3->resize(60,30);
    lab3->move(lab2->width()+lab2->x()+40,lab2->y());


    QLabel *lab4=new QLabel(this);
    lab4->setText("密码:");
    lab4->resize(60,30);
    lab4->move(lab3->x(),lab3->y()+lab3->height()+30);


    QLineEdit *edit1=new QLineEdit(this);
    edit1->resize(180,30);
    edit1->move(lab3->x()+lab3->width()+10,lab3->y());
    edit1->setStyleSheet("color:black");
    edit1->setAlignment(Qt::AlignLeft);
    edit1->setPlaceholderText("输入QQ账号");


    QLineEdit *edit2=new QLineEdit(this);
    edit2->resize(180,30);
    edit2->move(lab4->x()+lab4->width()+10,lab4->y());
    edit2->setStyleSheet("color:black");
    edit2->setAlignment(Qt::AlignLeft);
    edit2->setEchoMode(QLineEdit::Password);
    edit2->setPlaceholderText("输入QQ密码");


    QPushButton *btn1=new QPushButton(this);
    btn1->setText("登录");
    btn1->resize(80,40);
    btn1->move(lab4->x()+20,lab4->y()+lab4->height()+40);


    QPushButton *btn2=new QPushButton(this);
    btn2->setText("取消");
    btn2->resize(btn1->size());
    btn2->move(btn1->x()+btn1->width()+60,btn1->y());





}

Widget::~Widget()
{
}


http://www.kler.cn/a/323755.html

相关文章:

  • 第1章: 初识Pillow(PIL)
  • FRP 实现内网穿透
  • MFC中Picture Control控件显示照片的几种方式
  • 11.13机器学习_线性回归
  • 图像处理之cornerdetection(角点检测)综述
  • Flutter实现绝对定位学习
  • Humans or LLMs as the Judge? A Study on Judgement Bias
  • Redis6.0.9配置redis集群
  • 银河麒麟高级服务器操作系统V10外接硬盘挂载指南
  • 关于el-card的height设置100%后, el-card内容超出高度后,内容被隐藏这件事
  • Tkinter制作登录界面以及登陆后页面切换--用户数据从数据库获取并进行合法性校验(二)
  • 【WPF】多屏幕展示
  • Flask学习之项目搭建
  • Linux上的C/C++编程
  • 【管理】销售管理到底应该怎么管?
  • uniapp 实现3d轮播图,也就是中间的放大两边的缩小 用swiper和swiper-item就能实现
  • CentOS7 离线部署docker和docker-compose环境
  • 图说数集相等定义表明“R各元x的对应x+0.0001的全体=R“是几百年重大错误
  • c++与Python用笛卡尔的心形函数输出爱心
  • 学习ubuntu 24.10系统目录架构
  • 【Qt】前后端交互---DataCenter类
  • 牛顿迭代法求解x 的平方根
  • 架构师:消息队列的技术指南
  • Unity 网格的细节级别 (LOD) 学习
  • Python Web架构:微服务与服务网格的实践
  • C. Cards Partition 【Codeforces Round 975 (Div. 2)】