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

没网站怎么做app长尾词和关键词的区别

没网站怎么做app,长尾词和关键词的区别,怎样新建一个网页,做网站许昌目录 qt下载地址: widget 宽高 管理信息列表源码 c版: pro文件: qt 设置水平布局,里面有两个按钮,每个按钮就变的很宽,怎么设置按钮的精确位置 设置固定大小: 使用弹性空间(…

目录

qt下载地址:

widget 宽高

管理信息列表源码

c++版:

pro文件:

qt 设置水平布局,里面有两个按钮,每个按钮就变的很宽,怎么设置按钮的精确位置

设置固定大小:

使用弹性空间(Spacer)

使用布局比例:

qt c++ 加载ui文件:

方法1: 使用Qt Designer UI文件直接加载

方法2: 将UI文件转换为C++代码


qt下载地址:

Download Qt: Install and get started

widget 宽高

管理信息列表源码

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QListWidget, QListWidgetItem, QLabel, QWidget, QVBoxLayout, QHBoxLayout
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QSizeclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("Student Information List")self.setGeometry(100, 100, 450, 400)self.listWidget = QListWidget(self)self.setCentralWidget(self.listWidget)# 示例数据students = [{"name": "John Doe", "id": "123456789", "gender": "Male", "age": "20", "height": "180cm", "avatar": "res/drawable/head.png"},{"name": "Jane Smith", "id": "987654321", "gender": "Female", "age": "22", "height": "170cm", "avatar": "res/drawable/head.png"},{"name": "aaaa", "id": "fsadf", "gender": "sfd", "age": "sdf", "height": "170cm", "avatar": "res/drawable/head.png"},# 添加更多学生数据]for student in students:self.add_student(student)def add_student(self, student):# 创建一个自定义的QWidgetwidget = QWidget()hbox = QHBoxLayout()hbox.setContentsMargins(10, 0, 10, 0)hbox.setSpacing(5);# 头像label_avatar = QLabel()pixmap = QPixmap(student["avatar"]).scaled(75, 82)  # 假设头像图片的路径正确label_avatar.setPixmap(pixmap)label_avatar.setFixedSize(80, 90)hbox.addWidget(label_avatar)# 其他信息info_widget = QWidget()vbox = QVBoxLayout()# 第一行信息:名字和身份证号label_name_id = QLabel(f"姓名:{student['name']} 性别:{student['gender']}, {student['id']}")label_name_id.setFixedSize(300, 20)vbox.addWidget(label_name_id)# 第二行信息:性别,年龄,身高label_details = QLabel(f"类型:{student['age']}  单位:{student['age']} years old, {student['height']}")label_details.setFixedSize(300, 20)vbox.addWidget(label_details)# 第二行信息:性别,年龄,身高label_details = QLabel(f"职务:{student['age']}  证件号:{student['age']} years old, {student['height']}")label_details.setFixedSize(300, 20)vbox.addWidget(label_details)vbox.setContentsMargins(10, 10, 10, 10)vbox.setSpacing(5);info_widget.setLayout(vbox)hbox.addWidget(info_widget)widget.setLayout(hbox)# 将自定义widget加入到QListWidgetItem中item = QListWidgetItem()item.setSizeHint(widget.sizeHint())  # 必须设置sizeHintself.listWidget.addItem(item)self.listWidget.setItemWidget(item, widget)if __name__ == '__main__':app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())

c++版:

main.cpp

#include <QApplication>
#include <QMainWindow>
#include <QListWidget>
#include <QListWidgetItem>
#include <QWidget>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLabel>
#include <QPixmap>// 示例数据
struct Student {QString name;QString id;QString gender;QString age;QString height;QString avatar;
};class MainWindow : public QMainWindow {
public:MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {setWindowTitle("Student Information List");setGeometry(100, 100, 450, 400);auto listWidget = new QListWidget(this);setCentralWidget(listWidget);QVector<Student> students = {{"John Doe", "123456789", "Male", "20", "180cm", "111.jpg"},{"Jane Smith", "987654321", "Female", "22", "170cm", "111.jpg"},{"aaaa", "fsadf", "sfd", "sdf", "170cm", "111.jpg"}// 添加更多学生数据};for (auto &student : students) {addStudent(student, listWidget);}}void addStudent(const Student &student, QListWidget *listWidget) {auto widget = new QWidget();auto hbox = new QHBoxLayout(widget);hbox->setContentsMargins(10, 0, 10, 0);hbox->setSpacing(5);// 头像auto labelAvatar = new QLabel();QPixmap pixmap(student.avatar);labelAvatar->setPixmap(pixmap.scaled(75, 82));labelAvatar->setFixedSize(80, 90);hbox->addWidget(labelAvatar);// 其他信息auto infoWidget = new QWidget();auto vbox = new QVBoxLayout(infoWidget);// 第一行信息:名字和身份证号auto labelNameId = new QLabel(QString("姓名:%1 性别:%2, %3").arg(student.name, student.gender, student.id));labelNameId->setFixedSize(300, 20);vbox->addWidget(labelNameId);// 第二行信息:年龄,身高auto labelDetails = new QLabel(QString("年龄:%1 years old, 身高:%2").arg(student.age, student.height));labelDetails->setFixedSize(300, 20);vbox->addWidget(labelDetails);vbox->setContentsMargins(10, 10, 10, 10);vbox->setSpacing(5);hbox->addWidget(infoWidget);auto item = new QListWidgetItem();item->setSizeHint(widget->sizeHint());listWidget->addItem(item);listWidget->setItemWidget(item, widget);}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);MainWindow window;window.show();return app.exec();
}

pro文件:

QT       += core gui
QT += core gui widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

qt 设置水平布局,里面有两个按钮,每个按钮就变的很宽,怎么设置按钮的精确位置

  • 设置固定大小

  • 可以为按钮设置固定的宽度和高度,这样按钮就不会根据布局自动调整大小了。

QPushButton *button1 = new QPushButton("Button 1");
QPushButton *button2 = new QPushButton("Button 2");button1->setFixedSize(100, 30); // 设置按钮的固定大小
button2->setFixedSize(100, 30);QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(button1);
layout->addWidget(button2);
  • 使用弹性空间(Spacer)

  • : 你可以在按钮之间或按钮周围添加空间,这样可以更精确地控制按钮的位置。

QPushButton *button1 = new QPushButton("Button 1");
QPushButton *button2 = new QPushButton("Button 2");QHBoxLayout *layout = new QHBoxLayout;
layout->addStretch(1); // 在布局开始处添加弹性空间
layout->addWidget(button1);
layout->addStretch(1); // 在两个按钮之间添加弹性空间
layout->addWidget(button2);
layout->addStretch(1); // 在布局结束处添加弹性空间
  • 使用布局比例

  • 使用 QSizePolicy 来设置控件的大小策略,允许更细致的控制。

QPushButton *button1 = new QPushButton("Button 1");
QPushButton *button2 = new QPushButton("Button 2");button1->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
button2->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(button1, 1);
layout->addWidget(button2, 1);

qt c++ 加载ui文件:

方法1: 使用Qt Designer UI文件直接加载

在这种方法中,你可以使用QUiLoader类来动态加载UI文件。这种方式的优点是你可以在不重新编译程序的情况下更改UI设计,但缺点是可能会增加程序的启动时间和复杂性。

  1. 包括必要的头文件

    #include <QUiLoader> 
    #include <QFile> 
    #include <QWidget>
    
  2. 加载.ui文件: 你可以创建一个函数来加载UI文件,并返回一个指向加载的界面的指针。

    QWidget* loadUiFile(QWidget* parent)
    {QFile file(":/path/to/your.ui");file.open(QFile::ReadOnly);QUiLoader loader;QWidget* formWidget = loader.load(&file, parent);file.close();return formWidget;
    }
    

  3. 在主窗口中使用加载的UI

#include <QApplication>
#include <QVBoxLayout>int main(int argc, char *argv[])
{QApplication app(argc, argv);QWidget window;QWidget* myForm = loadUiFile(&window);QVBoxLayout* layout = new QVBoxLayout;layout->addWidget(myForm);window.setLayout(layout);window.show();return app.exec();
}

方法2: 将UI文件转换为C++代码

Qt提供了一个名为uic的工具,它可以将UI文件转换为C++类。这种方法的优点是执行效率更高,因为UI直接编译到程序中,但缺点是每次UI改变都需要重新编译。

  1. 在.pro文件中添加UI文件: 将UI文件添加到Qt项目文件中以自动调用uic工具。

    FORMS += mainwindow.ui
    
  2. 使用转换后的类uic工具会生成一个头文件,通常命名为ui_<filename>.h,你可以在你的C++类中包含这个文件,并使用其中的类。

#include "ui_mainwindow.h"class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr){ui.setupUi(this);}private:Ui::MainWindow ui;
};
  1. 在主函数中创建和显示窗口

int main(int argc, char *argv[])
{QApplication app(argc, argv);MainWindow mainWindow;mainWindow.show();return app.exec();
}

这两种方法可以根据不同的开发需求选择使用。如果需要灵活性和频繁的UI更改,推荐使用方法1;如果追求性能和稳定性,推荐使用方法2。

http://www.dinnco.com/news/19745.html

相关文章:

  • 济南高端网站设计软文营销怎么写
  • 租房子做民宿在哪个网站如何自己做一个软件
  • java做网站注册怎么弄seo诊断
  • wordpress栏目置顶win10最强优化软件
  • 牡丹区住房和城乡建设局网站产品运营推广方案
  • 2018年网站开发语言保定seo博客
  • 英文版网站建设策划方案百度搜索官方网站
  • 广州市官网网站建设多少钱优化大师免安装版
  • 有没有清仓处理的网站360摄像头海澳門地区限制解除
  • 阿里云网站建设百度推广开户费用
  • 武汉做网站最牛的公司2023年8月疫情严重吗
  • java软件百度搜索关键词优化
  • 陪聊公众号开发宁波seo网络推广报价
  • 做网站是用什么语言的大型网站seo课程
  • 手机版网站怎么做的google chrome官网
  • 达建网站的需要seo推广网络
  • 乌鲁木齐网站建设兼职seo网站优化是什么
  • 中英文网站建设报价江苏建站
  • 深圳做企业网站的公司推荐郑州见效果付费优化公司
  • 海南美容网站建设营销方案模板
  • 小视频网站怎么做用今日头条导入自己网站外链
  • 手机访问跳转手机网站网站链接分析工具
  • 自己做网站卖什么山东网络推广优化排名
  • 做新闻类网站2022年度最火关键词
  • 用苹果cms做电影网站推广普通话手抄报句子
  • 库存网站建设哪家好2023年新冠疫情最新消息
  • 个人建站公司手机网站关键词快速排名
  • 影视设计seo网络推广教程
  • 襄樊做网站金华seo扣费
  • 新乐网站建设百度经验官方网站登录入口