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

phpcms套好的网站 放到空间上 后台打开的验证码不能显示wordpress 高级自定义

phpcms套好的网站 放到空间上 后台打开的验证码不能显示,wordpress 高级自定义,seo搜索方法,怎么给网站做链接qt-C笔记之父类窗口、父类控件、对象树的关系 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QWidget 及开发方式…qt-C笔记之父类窗口、父类控件、对象树的关系 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QWidget 及开发方式详解 文章目录 qt-C笔记之父类窗口、父类控件、对象树的关系一.第一次笔记1. 父类窗口与父类控件是什么2. 传入的 this 和传入的父类窗口3. 跨层级的父子关系4. 纯代码开发a. 创建 MyObject 并传入 this 作为父对象b. 创建 MyWidget 并传入父窗口 5. 使用 Qt Designer 拖拽控件开发通过 Qt Designer 创建 UI并在代码中设置父对象6. 传入 this 作为父对象在自定义控件中创建子控件7. 传入具体的父类窗口从一个窗口创建子控件并指定不同的父窗口8. 跨层级的父子关系a. 多层级父子关系示例b. 跨不同逻辑层级的父子关系 二.第二次笔记示例一头文件和源文件分离示例二一个完整的main.cpp示例三入参为this指针的情况 一.第一次笔记 1. 父类窗口与父类控件是什么 父类窗口Parent Window和父类控件Parent Widget指的是在Qt的对象树Object Tree中某个窗口或控件的直接上级对象。具体来说 父类窗口通常指的是一个顶层窗口如 QMainWindow、QDialog它可以包含多个子控件widgets。父类控件是指一个控件如按钮、标签等的直接父级控件。通过父子关系子控件会在父控件的坐标系统内进行定位和显示。 父子关系的作用包括 内存管理在Qt中父对象会自动管理其子对象的生命周期。当父对象被销毁时所有子对象也会被自动销毁避免内存泄漏。层次结构通过父子关系Qt能够正确地渲染和管理窗口及控件的显示层级。 例如 声明MyObject(QObject *parent nullptr); 定义MyObject::MyObject(QObject *parent) : QObject(parent) {}声明MyWidget(QWidget *parent nullptr); 定义MyWidget::MyWidget(QWidget *parent) : QWidget(parent) {}在这里MyObject继承自QObject而MyWidget继承自QWidget。每个构造函数都接受一个指向父对象的指针并通过初始化列表将其传递给基类构造函数。这意味着创建MyObject或MyWidget实例时可以指定它们的父对象从而建立父子关系。 2. 传入的 this 和传入的父类窗口 在Qt中创建子对象时通常需要传递一个父指针以建立父子关系。常见的做法包括 传入 this 当你在一个类的成员函数中创建子对象时通常会传入this指针作为父对象。例如在一个窗口类中创建一个按钮QPushButton *button new QPushButton(Click Me, this);这里this指向当前窗口对象按钮将成为该窗口的子控件。 传入具体的父类窗口 有时需要将子对象附加到特定的父窗口而不是当前对象。例如在一个对话框中创建一个控件并将主窗口作为父对象QPushButton *button new QPushButton(Click Me, mainWindow);这样按钮的生命周期将与mainWindow绑定而不是当前对话框。 3. 跨层级的父子关系 跨层级的父子关系指的是子对象的父对象不在直接的层级结构中。例如 一个顶层窗口如MainWindow包含一个中间层的控件如QWidget该控件再包含其他子控件。或者一个对象的父对象在不同的逻辑层级中如业务逻辑对象的父对象是一个UI对象。 示例 // MainWindow 是顶层窗口 MainWindow *mainWindow new MainWindow();// 中间层控件 QWidget *centralWidget new QWidget(mainWindow);// 子控件 QPushButton *button new QPushButton(Click Me, centralWidget);在这个例子中button的父对象是centralWidget而centralWidget的父对象是mainWindow。这种多层级的父子关系有助于组织复杂的界面结构并确保对象的生命周期由顶层对象统一管理。 4. 纯代码开发 a. 创建 MyObject 并传入 this 作为父对象 // MyClass.h #include QObjectclass MyObject : public QObject {Q_OBJECT public:explicit MyObject(QObject *parent nullptr); };// MyClass.cpp #include MyClass.hMyObject::MyObject(QObject *parent) : QObject(parent) {}// Usage in another class #include MyClass.hclass AnotherClass : public QObject {Q_OBJECT public:AnotherClass() {MyObject *obj new MyObject(this); // this 是 AnotherClass 的实例} };说明 在 AnotherClass 中创建 MyObject 实例时将 this 作为父对象传递确保 MyObject 的生命周期与 AnotherClass 绑定。 b. 创建 MyWidget 并传入父窗口 // MyWidget.h #include QWidgetclass MyWidget : public QWidget {Q_OBJECT public:explicit MyWidget(QWidget *parent nullptr); };// MyWidget.cpp #include MyWidget.hMyWidget::MyWidget(QWidget *parent) : QWidget(parent) {}// Usage in MainWindow #include MyWidget.h #include QMainWindowclass MainWindow : public QMainWindow {Q_OBJECT public:MainWindow() {MyWidget *widget new MyWidget(this); // this 是 MainWindow 的实例setCentralWidget(widget);} };说明 在 MainWindow 中创建 MyWidget 实例时将 this 作为父窗口传递使 MyWidget 成为 MainWindow 的中央控件。 5. 使用 Qt Designer 拖拽控件开发通过 Qt Designer 创建 UI并在代码中设置父对象 假设你使用 Qt Designer 创建了一个 MainWindow并在其中放置了一个自定义控件 MyWidget。 // mainwindow.ui !-- 在 Qt Designer 中拖拽一个 QWidget 并提升为 MyWidget --widget classQMainWindow nameMainWindowwidget classMyWidget namemyWidget / /widget// mainwindow.h #include QMainWindow #include MyWidget.hnamespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECT public:explicit MainWindow(QWidget *parent nullptr);~MainWindow(); private:Ui::MainWindow *ui; };// mainwindow.cpp #include mainwindow.h #include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this);// Qt Designer 已经自动将 MyWidget 的父对象设置为 MainWindow }MainWindow::~MainWindow() {delete ui; }说明 使用 Qt Designer 拖拽 MyWidget 到 MainWindowDesigner 自动将 MyWidget 的父对象设置为 MainWindow无需手动传递父指针。 6. 传入 this 作为父对象在自定义控件中创建子控件 // MyWidget.cpp #include MyWidget.h #include QPushButtonMyWidget::MyWidget(QWidget *parent) : QWidget(parent) {QPushButton *button new QPushButton(Click Me, this); // this 是 MyWidget 的实例button-setGeometry(10, 10, 100, 30); }说明 在 MyWidget 的构造函数中创建一个 QPushButton并将 this 作为父对象使按钮成为 MyWidget 的子控件。 7. 传入具体的父类窗口从一个窗口创建子控件并指定不同的父窗口 #include QMainWindow #include MyWidget.hclass MainWindow : public QMainWindow {Q_OBJECT public:MainWindow() {QWidget *central new QWidget(this);setCentralWidget(central);MyWidget *widget new MyWidget(central); // 指定 central 为父对象} };说明 MyWidget 的父对象被指定为 central而不是直接是 MainWindow使其生命周期与 central 相关联。 8. 跨层级的父子关系 a. 多层级父子关系示例 #include QMainWindow #include MyWidget.h #include MyObject.hclass MainWindow : public QMainWindow {Q_OBJECT public:MainWindow() {// 创建顶层控件MyWidget *widget new MyWidget(this);setCentralWidget(widget);// 在 MyWidget 中创建 MyObjectMyObject *obj new MyObject(widget); // widget 作为 MyObject 的父对象} };说明 这里 MyObject 的父对象是 MyWidget而 MyWidget 的父对象是 MainWindow。这种跨层级的父子关系确保了对象的生命周期由顶层对象统一管理。 b. 跨不同逻辑层级的父子关系 假设有一个业务逻辑类 BusinessLogic 继承自 MyObject需要将其父对象设置为 UI 层的 MainWindow。 // BusinessLogic.h #include MyObject.hclass BusinessLogic : public MyObject {Q_OBJECT public:explicit BusinessLogic(QObject *parent nullptr); };// BusinessLogic.cpp #include BusinessLogic.hBusinessLogic::BusinessLogic(QObject *parent) : MyObject(parent) {}// Usage in MainWindow #include BusinessLogic.hclass MainWindow : public QMainWindow {Q_OBJECT public:MainWindow() {BusinessLogic *logic new BusinessLogic(this); // this 是 MainWindow} };说明 BusinessLogic 的父对象是 MainWindow尽管它属于业务逻辑层但通过这种方式可以确保其生命周期与 UI 层关联。 二.第二次笔记 示例一头文件和源文件分离 // MyObject.h #ifndef MYOBJECT_H #define MYOBJECT_H#include QObjectclass MyObject : public QObject {Q_OBJECTpublic:explicit MyObject(QObject *parent nullptr); // 构造函数声明默认 parent 为 nullptr };#endif // MYOBJECT_H// MyObject.cpp #include MyObject.hMyObject::MyObject(QObject *parent) : QObject(parent) {} // 构造函数定义初始化基类 QObject 并传递 parent// MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H#include QWidgetclass MyWidget : public QWidget {Q_OBJECTpublic:explicit MyWidget(QWidget *parent nullptr); // 构造函数声明默认 parent 为 nullptr };#endif // MYWIDGET_H// MyWidget.cpp #include MyWidget.hMyWidget::MyWidget(QWidget *parent) : QWidget(parent) {} // 构造函数定义初始化基类 QWidget 并传递 parent// main.cpp #include QApplication #include MyObject.h #include MyWidget.hint main(int argc, char *argv[]) {QApplication app(argc, argv);MyObject *obj new MyObject(); // 实例化 MyObject没有指定父对象MyObject *objWithParent new MyObject(nullptr); // 实例化 MyObject并指定 parent 为 nullptr等同于不指定MyWidget *widget new MyWidget(); // 实例化 MyWidget没有指定父窗口MyWidget *widgetWithParent new MyWidget(nullptr); // 实例化 MyWidget并指定 parent 为 nullptr等同于不指定widget-show(); // 显示 MyWidget 窗口return app.exec(); // 运行应用程序事件循环 }示例二一个完整的main.cpp // main.cpp // 这个程序演示了 Qt 中 QObject 和 QWidget 的父子关系#include QApplication #include QObject #include QWidget #include QDebugclass MyObject : public QObject {Q_OBJECTpublic:explicit MyObject(QObject *parent nullptr) : QObject(parent) { // 构造函数默认 parent 为 nullptrif (parent)qDebug() MyObject 被创建父对象为 parent;elseqDebug() MyObject 被创建没有父对象;}~MyObject() { qDebug() MyObject 被销毁; } // 析构函数 };class MyWidget : public QWidget {Q_OBJECTpublic:explicit MyWidget(QWidget *parent nullptr) : QWidget(parent) { // 构造函数默认 parent 为 nullptrif (parent)qDebug() MyWidget 被创建父窗口为 parent;elseqDebug() MyWidget 被创建没有父窗口;}~MyWidget() { qDebug() MyWidget 被销毁; } // 析构函数 };int main(int argc, char *argv[]) {QApplication app(argc, argv);MyObject *obj1 new MyObject(); // 创建一个没有父对象的 MyObject 实例obj1 没有父对象需手动删除MyObject *obj2 new MyObject(obj1); // 创建一个指定父对象为 obj1 的 MyObject 实例MyWidget *widget1 new MyWidget(); // 创建一个没有父窗口的 MyWidget 实例widget1-setWindowTitle(没有父窗口的 MyWidget); // 设置窗口标题widget1-resize(300, 200); // 调整窗口大小widget1-show(); // 显示窗口MyWidget *widget2 new MyWidget(widget1); // 创建一个指定父窗口为 widget1 的 MyWidget 实例widget2-setWindowTitle(widget1 的子窗口 MyWidget);widget2-resize(200, 150);widget2-show();MyObject *obj3 new MyObject(nullptr); // 创建一个没有父对象的 MyObject 实例传递 nullptrobj3 没有父对象需手动删除MyObject *obj4 new MyObject(widget1); // 创建一个指定父对象为 widget1 的 MyObject 实例MyWidget *widget3 new MyWidget(nullptr); // 设置一个父窗口为 nullptr 的 MyWidget 实例widget3-setWindowTitle(没有父窗口的另一个 MyWidget);widget3-resize(250, 180);widget3-show();return app.exec(); // 运行应用程序事件循环// 注意obj1, obj3 没有父对象程序退出时会自动销毁// 在更复杂的应用中应手动删除没有父对象的堆对象以避免内存泄漏 }#include main.moc示例三入参为this指针的情况 项目结构 MyQtApp/ ├── main.cpp ├── ParentWidget.h ├── ParentWidget.cpp ├── MyWidget.h ├── MyWidget.cpp ├── MyObject.h ├── MyObject.cpp └── MyQtApp.proMyQtApp.pro QT widgets CONFIG c11SOURCES main.cpp \ParentWidget.cpp \MyWidget.cpp \MyObject.cppHEADERS ParentWidget.h \MyWidget.h \MyObject.hmain.cpp #include QApplication #include ParentWidget.hint main(int argc, char *argv[]) {QApplication app(argc, argv);ParentWidget parentWidget;parentWidget.setWindowTitle(ParentWidget 主窗口);parentWidget.resize(400, 300);parentWidget.show();return app.exec(); }ParentWidget.h #ifndef PARENTWIDGET_H #define PARENTWIDGET_H#include QWidget #include MyObject.h #include MyWidget.hclass ParentWidget : public QWidget {Q_OBJECT public:explicit ParentWidget(QWidget *parent nullptr); };#endif // PARENTWIDGET_HParentWidget.cpp #include ParentWidget.h #include QDebugParentWidget::ParentWidget(QWidget *parent) : QWidget(parent) {MyWidget *childWidget new MyWidget(this);childWidget-setWindowTitle(ParentWidget 的子窗口 MyWidget);childWidget-resize(200, 150);childWidget-show();MyObject *childObject new MyObject(this);qDebug() 创建了 MyObject: childObject; }MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H#include QWidgetclass MyWidget : public QWidget {Q_OBJECT public:explicit MyWidget(QWidget *parent nullptr); };#endif // MYWIDGET_HMyWidget.cpp #include MyWidget.hMyWidget::MyWidget(QWidget *parent) : QWidget(parent) {// 初始化内容可选 }MyObject.h #ifndef MYOBJECT_H #define MYOBJECT_H#include QObjectclass MyObject : public QObject {Q_OBJECT public:explicit MyObject(QObject *parent nullptr); };#endif // MYOBJECT_HMyObject.cpp #include MyObject.hMyObject::MyObject(QObject *parent) : QObject(parent) {// 初始化内容可选 }预期效果 运行程序后将显示一个标题为“ParentWidget 主窗口”的主窗口同时弹出一个标题为“ParentWidget 的子窗口 MyWidget”的子窗口。控制台会输出创建 MyObject 的信息。
文章转载自:
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.zcqgf.cn.gov.cn.zcqgf.cn
http://www.morning.kntbk.cn.gov.cn.kntbk.cn
http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn
http://www.morning.xhddb.cn.gov.cn.xhddb.cn
http://www.morning.xsetx.com.gov.cn.xsetx.com
http://www.morning.tsmxh.cn.gov.cn.tsmxh.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.morning.rjnm.cn.gov.cn.rjnm.cn
http://www.morning.zlces.com.gov.cn.zlces.com
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.jqmmf.cn.gov.cn.jqmmf.cn
http://www.morning.nhrkl.cn.gov.cn.nhrkl.cn
http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn
http://www.morning.mkydt.cn.gov.cn.mkydt.cn
http://www.morning.rtzd.cn.gov.cn.rtzd.cn
http://www.morning.mszls.cn.gov.cn.mszls.cn
http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn
http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn
http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn
http://www.morning.qjldz.cn.gov.cn.qjldz.cn
http://www.morning.ghcfx.cn.gov.cn.ghcfx.cn
http://www.morning.cgstn.cn.gov.cn.cgstn.cn
http://www.morning.lthgy.cn.gov.cn.lthgy.cn
http://www.morning.sfwcb.cn.gov.cn.sfwcb.cn
http://www.morning.qpxrr.cn.gov.cn.qpxrr.cn
http://www.morning.nqlx.cn.gov.cn.nqlx.cn
http://www.morning.ngmjn.cn.gov.cn.ngmjn.cn
http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn
http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn
http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn
http://www.morning.pshpx.cn.gov.cn.pshpx.cn
http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn
http://www.morning.lynmt.cn.gov.cn.lynmt.cn
http://www.morning.wgzgr.cn.gov.cn.wgzgr.cn
http://www.morning.jsljr.cn.gov.cn.jsljr.cn
http://www.morning.wrbx.cn.gov.cn.wrbx.cn
http://www.morning.china-cj.com.gov.cn.china-cj.com
http://www.morning.kcdts.cn.gov.cn.kcdts.cn
http://www.morning.rmyt.cn.gov.cn.rmyt.cn
http://www.morning.kpgft.cn.gov.cn.kpgft.cn
http://www.morning.fbxdp.cn.gov.cn.fbxdp.cn
http://www.morning.dlurfdo.cn.gov.cn.dlurfdo.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.xuejitest.com.gov.cn.xuejitest.com
http://www.morning.qczjc.cn.gov.cn.qczjc.cn
http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn
http://www.morning.wknj.cn.gov.cn.wknj.cn
http://www.morning.tnkwj.cn.gov.cn.tnkwj.cn
http://www.morning.dskzr.cn.gov.cn.dskzr.cn
http://www.morning.xltwg.cn.gov.cn.xltwg.cn
http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn
http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn
http://www.morning.wcgfy.cn.gov.cn.wcgfy.cn
http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn
http://www.morning.lsbjj.cn.gov.cn.lsbjj.cn
http://www.morning.drggr.cn.gov.cn.drggr.cn
http://www.morning.qfgwx.cn.gov.cn.qfgwx.cn
http://www.morning.cmhkt.cn.gov.cn.cmhkt.cn
http://www.morning.yszrk.cn.gov.cn.yszrk.cn
http://www.morning.txlxr.cn.gov.cn.txlxr.cn
http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn
http://www.morning.baohum.com.gov.cn.baohum.com
http://www.morning.jcxyq.cn.gov.cn.jcxyq.cn
http://www.morning.rsxw.cn.gov.cn.rsxw.cn
http://www.morning.qllcm.cn.gov.cn.qllcm.cn
http://www.morning.tgyqq.cn.gov.cn.tgyqq.cn
http://www.morning.rpljf.cn.gov.cn.rpljf.cn
http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn
http://www.morning.haibuli.com.gov.cn.haibuli.com
http://www.morning.crxdn.cn.gov.cn.crxdn.cn
http://www.morning.wfzlt.cn.gov.cn.wfzlt.cn
http://www.morning.gnghp.cn.gov.cn.gnghp.cn
http://www.morning.rjznm.cn.gov.cn.rjznm.cn
http://www.morning.tongweishi.cn.gov.cn.tongweishi.cn
http://www.morning.lgznf.cn.gov.cn.lgznf.cn
http://www.morning.hmdyl.cn.gov.cn.hmdyl.cn
http://www.morning.xzrbd.cn.gov.cn.xzrbd.cn
http://www.morning.frcxx.cn.gov.cn.frcxx.cn
http://www.tj-hxxt.cn/news/250597.html

相关文章:

  • 维护网站成本关于网站规划建设方案书
  • 创新的网站建设排行榜网站开发php制作
  • 专业网站建设制作价格网站开发公司交易流程
  • 自助建站什么意思ie不支持wordpress
  • 做网站需要多少钱 网络服务深圳专业专业网站建设
  • 怎么做网站一个平台seo网站源码
  • 免费怎么制作公司网站行业协会网站建设的目的
  • 北京门户网站制作公司网页设计与网站建设文档
  • 浏览wap网站郑州市城乡建设局网站
  • 帝国cms仿站工具wordpress后台超慢
  • 网站建设 工作职责网站怎么进行优化
  • 天津企业网络建站wordpress做网站教程
  • wordpress saas 建站网站维护运营优化公司
  • 网站建设调研通知wordpress没有图片不显示不出来
  • 浙江省网站icp备案域名怎么和网站绑定
  • 菠菜网站怎么做推广免费建站平台哪个稳定
  • 网站做流量怎么赚钱的微信个人号管理系统
  • 建设银行信用卡申请网站新开传奇网站手机版
  • 电子商务网站建设优势大公司网站色彩设计
  • 网站标题和描述优化胶州房产网
  • 玉环 网站建设营销型企业网站报价
  • 六安关于建设审批的网站最近播放中文版在线观看电视剧
  • wordpress资讯站模板网站建设用图
  • 造价工程建设协会网站青岛seo建站
  • python 做网站速度15秒创意广告短片
  • 网站开发产权保护如何做企业网页
  • 家电网站源码公司创建的法制网站
  • 驻马店北京网站建设企业网站模板下载价格多少
  • 网站建设方案封面安徽合肥网站制作
  • 电商网站建设的目的网站制作大连