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

专业做模具钢的网站网站图片分辨率尺寸

专业做模具钢的网站,网站图片分辨率尺寸,网站建设开发软件有哪些,富阳网站建设报价概述 在使用Qt创建用户界面时#xff0c;特别是那些具有特殊控件和特性的界面时#xff0c;开发人员有时需要创建新的数据类型#xff0c;以便与Qt现有的值类型集一起使用或代替它们。 QSize、QColor和QString等标准类型都可以存储在QVariant对象中#xff0c;作为基于qo…概述 在使用Qt创建用户界面时特别是那些具有特殊控件和特性的界面时开发人员有时需要创建新的数据类型以便与Qt现有的值类型集一起使用或代替它们。 QSize、QColor和QString等标准类型都可以存储在QVariant对象中作为基于qobject的类的属性类型并在信号槽通信中发出。 在本文中我们将使用一个自定义类型并描述如何将其集成到Qt的对象模型中以便它能够以与标准Qt类型相同的方式存储。然后我们将展示如何注册自定义类型以允许它在信号和插槽连接中使用。 创建自定义类型 在开始之前我们需要确保创建的自定义类型满足QMetaType的所有要求。换句话说它必须提供: 一个公共的默认构造函数一个公共复制构造函数以及一个公共析构函数。 下面的Message类定义包含了这些成员: class Message { public:Message() default;~Message() default;Message(const Message ) default;Message operator(const Message ) default;Message(const QString body, const QStringList headers);QString body() const;QStringList headers() const;private:QString m_body;QStringList m_headers; }; 这个类还提供了一个普通使用的构造函数以及两个用于获取私有数据的公共成员函数。 用QMetaType声明类型 Message类只需要适当的实现就可以使用。然而Qt的类型系统将无法理解如何存储检索和序列化这个类的实例如果没有一些帮助。例如我们将无法在QVariant中存储消息值。 Qt中负责自定义类型的类是QMetaType。为了让这个类知道类型我们在定义类的头文件中调用Q_DECLARE_METATYPE()宏: Q_DECLARE_METATYPE(Message); 这使得将消息值存储在QVariant对象中并在以后检索成为可能。有关演示这一点的代码请参阅自定义类型示例。 Q_DECLARE_METATYPE()宏也可以将这些值用作信号的参数但只能在直接的信号槽连接中使用。为了使自定义类型通常可用于信号和插槽机制我们需要执行一些额外的工作。 创建和销毁自定义对象 虽然前一节中的声明使该类型可用于直接的信号槽连接但不能用于排队的信号槽连接例如不同线程中的对象之间的连接。这是因为元对象系统不知道如何在运行时处理自定义类型对象的创建和销毁。 要在运行时创建对象请调用qRegisterMetaType()模板函数将其注册到元对象系统。这也使得该类型可用于排队信号槽通信只要您在创建第一个使用该类型的连接之前调用它。 排队的自定义类型示例声明了一个注册在main.cpp文件中的块类: int main(int argc, char *argv[]) {QApplication app(argc, argv);...qRegisterMetaTypeBlock();...return app.exec(); } 此类型稍后在window.cpp文件中的信号槽连接中使用: Window::Window(QWidget *parent): QWidget(parent), thread(new RenderThread(this)) {...connect(thread, RenderThread::sendBlock,this, Window::addBlock);...setWindowTitle(tr(Queued Custom Type)); } 如果在未注册的情况下在排队连接中使用了类型则将在控制台中打印警告;例如: QObject::connect: Cannot queue arguments of type Block (Make sure Block is registered using qRegisterMetaType().) 使类型可打印 使自定义类型可打印用于调试通常是非常有用的如下面的代码所示: Message message(body, headers);qDebug() Original: message; 这可以通过为该类型创建一个流操作符来实现该操作符通常在该类型的头文件中定义: QDebug operator(QDebug dbg, const Message message); 自定义类型示例中Message类型的实现做了一些努力使可打印的表示尽可能可读: QDebug operator(QDebug dbg, const Message message) {const QString body message.body();QVectorQStringRef pieces body.splitRef(QLatin1String(\r\n), Qt::SkipEmptyParts);if (pieces.isEmpty())dbg.nospace() Message();else if (pieces.size() 1)dbg.nospace() Message( pieces.first() );elsedbg.nospace() Message( pieces.first() ...);return dbg.maybeSpace(); } 当然发送到调试流的输出可以按照您的喜好设置为简单或复杂。请注意该函数返回的值是QDebug对象本身尽管这通常是通过调用QDebug的maybeSpace()成员函数获得的该函数用空格字符填充流使其更具可读性。 Creating Custom Qt Types | Qt Core 5.15.17
http://www.dnsts.com.cn/news/192563.html

相关文章:

  • 主要的网站开发技术wordpress访问特别慢
  • 全国响应式网站建设谷歌字体wordpress主题
  • 长沙网站制作哪里好wordpress 设置缩略图
  • php大型网站开发视频网站微博代码
  • 怎么做自己的导航网站0453牡丹江信息网息网
  • 2019年的阜南县建设修路网站宝安高端网站建设公司
  • 福建建设部网站定制家具设计师培训
  • 网站开发的框架协议网站建设图片流程
  • 凌河网站建设推广办公室装修铺哪种地板
  • 黑蒜东莞网站建设牛商的网站后台
  • 深圳 网站制作 哪家wordpress更新机制
  • 网站对公司的作用是什么商务网站设计实训报告
  • 易县做网站有那些专门做外贸的网站呀
  • 100种画册排版图解福田网站建设公司乐云seo
  • 怎么做网站维护宣传四川做网站设计的公司
  • 新网站怎么快速收录必做沈阳微信网站建设
  • 定制网站的价格低婚纱网站源码
  • 莱芜市城乡建设局网站建立网站很重要的要素是什么
  • 炫酷表白网站在线制作毕业设计h5网站制作
  • 网站定制开发什么意思百度搜索一下百度
  • 高要网站建设公司专业网站制作团队
  • 带会员功能的网站6wordpress
  • 求个网站你们知道的中山手机网站建设哪家好
  • 网站建设需要包含什么wordpress 加载 蛮
  • 广东网站建设商家河南省城乡和建设厅网站首页
  • 河北网站seo开源php建站系统
  • 35互联网站建设起零网站建设
  • 怎么在自己电脑上建网站泰安招聘网上市场
  • 网站开发_超速云广告策划案
  • app软件网站建设网站域名验证功能上线