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

做网站建设的平台西宁网站建设平台公司

做网站建设的平台,西宁网站建设平台公司,在线工具,新闻有哪些网站有哪些类型参考#xff1a; C GUI Programming with Qt 4, Second Edition 本地环境#xff1a; win10专业版#xff0c;64位#xff0c;Qt5.12 目录 实现效果基本流程逐步实操1#xff09;创建和初始化子部件2#xff09;把子部件放进布局中3#xff09;设置tab顺序4#xff09…参考 C GUI Programming with Qt 4, Second Edition 本地环境 win10专业版64位Qt5.12 目录 实现效果基本流程逐步实操1创建和初始化子部件2把子部件放进布局中3设置tab顺序4连接信号和槽 5实现自定义的槽 使用QDialogButtonBox拖动绘制代码 排错设置了windowIcon但不显示 实现效果 打码的是logo。 基本流程 创建dialog的流程 创建和初始化子部件把子部件放进布局中设置tab顺序连接信号和槽实现自定义的槽。 逐步实操 现在一步一步操作 **注意**我一开始是用Qt Creator的设计页面做的所以截图都是设计页面但是Qt Creator没有预览稍微有点不方便因此第三步我换到Qt Designer了操作是一样的。 1创建和初始化子部件 先新建一个dialog。 然后打开设计页面放置几个小组件如下图所示。不要在意对齐后面会使用自动对齐 各个对象的名称和所属的类如下图所示 需要修改的属性有 左侧是okButton修改text为OK设置enable为false设置default为true。default表示按回车会触发。右侧是cancelButton需改text为cancel 然后需要设置label的buddy是lineEdit。 点击菜单栏-编辑-Edit buddies然后左键点击label出现箭头后拖动连接到lineEdit上如下图所示。 这样buddy就设置成功了。点击编辑菜单栏返回也可以点击上方的工具条 2把子部件放进布局中 按住ctrl然后依次选择label和lineEdit单击工具条上的水平布局此时布局成功 然后对spacer和两个按钮做水平布局。随后反选单击垂直布局 现在变成 可以看到窗口大小似乎偏大点击工具条上的调整大小按钮变成了最优尺寸 3设置tab顺序 设置tab顺序就是部件接受焦点focus的顺序点击的是工具条上带数字的灰色按钮 因为想要预览效果我用Qt Designer打开了文件。 点击窗体-预览可以看到各种风格下的效果。 windowsvista风格 windows风格 fushion风格 那么如何套用这个格式呢 在main.cpp中这样写 #include QApplication #include ui_toolbasic.hint main(int argc, char *argv[]) {QApplication a(argc, argv);Ui::toolBasic ui;QDialog *dialog new QDialog;ui.setupUi(dialog);dialog-show();return a.exec(); }显示效果logo显示正确。 代码说明 ui_toolbasic.h是前面拖动后自动产生的文件打开可以看到很多关于布局、绘制的代码 4连接信号和槽 5实现自定义的槽 要实现的效果限制lineEdit的输入格式要求以字母开始后跟一个数字再跟0-2个数字。只有满足要求时OK按钮才生效。 main.cpp #include QApplication //#include ui_toolbasic.h #include toolbasic.hint main(int argc, char *argv[]) {QApplication a(argc, argv);toolBasic* tb new toolBasic;tb-show();return a.exec(); } toolbasic.h #ifndef TOOLBASIC_H #define TOOLBASIC_H#include QDialog // 增加ui这一行第一步生成form时是没有的 #include ui_toolbasic.hnamespace Ui { class toolBasic; }// 声明 class QWidget;class toolBasic : public QDialog, public Ui::toolBasic {Q_OBJECTpublic://explicit toolBasic(QWidget *parent nullptr);// 注释掉自动生成的构造函数重写一个toolBasic(QWidget *parent 0);~toolBasic();private:Ui::toolBasic *ui; // 新增槽函数 private slots:void on_lineEdit_textChanged();};#endif // TOOLBASIC_H toolBasic.cpp 需要注意的是 setupUi()会自动连接一些槽函数只要槽函数满足格式on_objectName_signalName()也就是会蒋objectName和signalName()连接起来不用另外写。 因此上面新增了槽函数on_lineEdit_textChanged()等于执行到setupUi()时自动实现了这个连接 connect(lineEdit, SIGNAL(textChanged(const QString )), this, SLOT(on_lineEdit_textChanged())); 所以只需要实现这个槽函数就能实现lineEdit内容改变后的自动处理过程。 #include toolbasic.h #include QRegularExpressionValidator #include QWidgettoolBasic::toolBasic(QWidget *parent) :QDialog(parent),ui(new Ui::toolBasic) {// setupUi()会自动连接一些槽函数只要槽函数满足格式on_objectName_signalName()setupUi(this);// 要求以字母开头后跟一个数字(1-9)然后跟0-2个数字(0-9)QRegularExpression regExp([A-Za-z][1-9][0-9]{0,2});lineEdit-setValidator(new QRegularExpressionValidator(regExp, this));// 把okButton连到QDialog::accept()槽函数. // accept()关闭对话框但是设置dialog的结果是QDialog::Accepted也就是1connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));// 把cancelButton连到QDialog::reject()// reject()也关闭对话框但是设置结果为QDialog::Rejected也就是0connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));}toolBasic::~toolBasic() {delete ui; }void toolBasic::on_lineEdit_textChanged() {// lineEdit有合法输入时开启ok按钮okButton-setEnabled(lineEdit-hasAcceptableInput()); } 使用QDialogButtonBox 效果 在创建界面时选择Dialog with Buttons Bottom起名myDialog。 不要用这个会报错diyDialog。 拖动绘制 与前面相似就是两个button变成了一个buttonBox。如果需要特殊一点的对齐需要把预先出现在面板上的buttonBox删掉不然spacer是放不好的。如果不删的话上面两个connect也是自动实现了的不用写。 另外调整最佳尺寸的按钮会失效需要手动调整尺寸。自动的会很小因为只有两个小组件 代码 diydialog.h和main.cpp跟前面类似不再重复。diydialog.cpp需要做一点修改 #include QRegularExpressionValidator #include QWidget #include QPushButton #include QDialogButtonBox #include diydialog.hdiyDialog::diyDialog(QWidget *parent) :QDialog(parent) {setupUi(this);QRegularExpression regExp([A-Za-z][1-9][0-9]{0,2});lineEdit-setValidator(new QRegularExpressionValidator(regExp, this));// 这里需要修改connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); }diyDialog::~diyDialog() {delete ui; }void diyDialog::on_lineEdit_textChanged(){// 修改buttonBox-button(QDialogButtonBox::Ok)-setEnabled(lineEdit-hasAcceptableInput()); } 注意如果buttonBox-button这里提示invalid use of incomplete type class QPushButton可能是没有引入QPushButton的原因include上就解决了。 排错 设置了windowIcon但不显示 可能有问题的地方 前缀写错 使用了错误的文件格式 icon不支持ico格式换成jpg或者png即可。 使用拖动方式在designer中设置icon时要选选择资源不要选选择文件 图片文件的路径写错 在这篇文章里qt5-入门-信号槽理解QMainWindow我的路径是这样写的openAction-setIcon(QIcon(:/pic.jpg));但是我现在把文件放到专门的文件夹下了文件结构如下图 如果直接写:/resources/img/xxx_logo.png其实是访问不到的。更简单的方法是editor中查看res.qrc右键复制path可以看到复制结果是://resources/img/xxx_logo.png然后直接在代码里写 this-setWindowIcon(QIcon(://resources/img/xxx_logo.png));
http://www.w-s-a.com/news/923606/

相关文章:

  • 数码家电商城网站源码一个网站的成本
  • 网站伪静态是什么意思麻涌东莞网站建设
  • 理县网站建设公司郑州仿站定制模板建站
  • 手机网站建设网站报价诸城人才网招聘网
  • 一起做网站怎么下单临沂网站制作
  • 公司网站案例企业网站 模版
  • 做的好的响应式网站有哪些网站界面设计案例
  • 上海创意型网站建设icp备案网站信息
  • 网站没收录中山手机网站制作哪家好
  • 代驾软件开发流程wordpress 博客主题 seo
  • 成都的教育品牌网站建设网站广告js代码添加
  • 网站找人做seo然后网站搜不到了网站建设seoppt
  • 做网站优化有用吗学做文案的网站
  • wordpress 知名网站怎么做微网站
  • 用电脑怎么做原创视频网站河南建设工程信息网一体化平台官网
  • 云服务器和网站空间郑州做招商的网站
  • 规模以上工业企业的标准北京seo结算
  • 软件开发过程模型如何做网站性能优化
  • 网站建站公司广州南京江北新区楼盘
  • 哪些做展架图的网站好开发公司2022年工作计划
  • 磨床 东莞网站建设wordpress下载类主题系统主题
  • 免费学编程网站芜湖做网站都有哪些
  • 能发外链的网站门户网站网页设计规范
  • 网站建设所需人力南城区网站建设公司
  • 网站做图尺寸大小手机模板网站模板下载网站有哪些内容
  • 德阳市建设管理一体化平台网站做美食网站
  • 怎么做自己的推广网站2024年瘟疫大爆发
  • vps正常网站打不开linux网站建设
  • 福州网站快速排名在一个网站的各虚拟目录中默认文档的文件名要相同
  • 网站开发 流程图网站开发用哪个linux