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

熊岳网站在哪做/长沙网络公关公司

熊岳网站在哪做,长沙网络公关公司,张家口网站建设价格,无锡网站建设选千客云网络样式(继承QStyle的类)代表小部件绘制并封装 GUI 的外观。 QStyle 类是一个抽象基类,它封装了 GUI 的外观。 Qt 的内置小部件使用它来执行几乎所有的绘图,确保它们看起来与等效的原生小部件完全一样。 Qt带有一系列内置样式&#…

样式(继承QStyle的类)代表小部件绘制并封装 GUI 的外观。 QStyle 类是一个抽象基类,它封装了 GUI 的外观。 Qt 的内置小部件使用它来执行几乎所有的绘图,确保它们看起来与等效的原生小部件完全一样。

Qt带有一系列内置样式,某些样式仅在特定平台上可用。自定义样式可作为插件使用,或者通过使用 QStyleFactory::create()创建特定样式类的实例并使用QApplication::setStyle()设置它。

Qt技术交流群:166830288      欢迎一起进群讨论

点击获取Qt组件下载

样式选项

QStyleOption 的子类包含设置各个元素样式所需的所有信息,样式选项被实例化 - 通常在堆栈上 - 并由QStyle函数的调用者填写。根据绘制的内容,样式将期望不同的样式选项类。 例如,QStyle::PE_FrameFocusRect 元素需要一个QStyleOptionFocusRect 参数,并且可以创建自定义样式可以使用的自定义子类。 出于性能原因,样式选项保留公共变量。

小部件可以处于许多不同的状态,这些状态由State枚举定义。 一些状态标志根据小部件具有不同的含义,但其他状态标志对于所有小部件都是通用的,例如 State_Disabled。 使用QStyleOption::initFrom(); 设置公共状态的是QStyleOption; 其余状态由各个小部件设置。

最值得注意的是,样式选项包含要绘制的小部件调色板和边界矩形,大多数小部件都有专门的样式选项。 例如,QPushButton和QCheckBox使用QStyleOptionButton作为样式选项,其中包含文本、图标和图标的大小。 当我们浏览各个小部件时,将描述所有选项的确切内容。

在重新实现带有QStyleOption参数的QStyle函数时,您通常需要将QStyleOption 强制转换为子类(例如,QStyleOptionFocusRect)。 为了安全起见,您可以使用qstyleoption_cast()来确保指针类型正确。 如果对象的类型不正确,qstyleoption_cast() 返回 nullptr, 例如:

const QStyleOptionFocusRect *focusRectOption =
qstyleoption_cast<const QStyleOptionFocusRect *>(option);
if (focusRectOption) {
...
}

以下代码片段说明了如何使用 QStyle 从自定义小部件的 paintEvent() 中绘制焦点矩形:

void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
...QStyleOptionFocusRect option(1);
option.init(this);
option.backgroundColor = palette().color(QPalette::Window);style().drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter,
this);
}

下一个示例显示如何从现有样式派生以自定义图形元素的外观:

class CustomStyle : public QProxyStyle
{
Q_OBJECTpublic:
CustomStyle(const QWidget *widget);
~CustomStyle() {}void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const override;
};void CustomStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const
{
if (element == PE_IndicatorSpinUp || element == PE_IndicatorSpinDown) {
QPolygon points(3);
int x = option->rect.x();
int y = option->rect.y();
int w = option->rect.width() / 2;
int h = option->rect.height() / 2;
x += (option->rect.width() - w) / 2;
y += (option->rect.height() - h) / 2;if (element == PE_IndicatorSpinUp) {
points[0] = QPoint(x, y + h);
points[1] = QPoint(x + w, y + h);
points[2] = QPoint(x + w / 2, y);
} else { // PE_SpinBoxDown
points[0] = QPoint(x, y);
points[1] = QPoint(x + w, y);
points[2] = QPoint(x + w / 2, y + h);
}if (option->state & State_Enabled) {
painter->setPen(option->palette.mid().color());
painter->setBrush(option->palette.buttonText());
} else {
painter->setPen(option->palette.buttonText().color());
painter->setBrush(option->palette.mid());
}
painter->drawPolygon(points);
} else {
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
}
http://www.lbrq.cn/news/1260523.html

相关文章:

  • 网站备案怎么在工信部信息核验/郑州网站
  • 做技术分享网站有哪些/百度怎么做推广和宣传
  • 佛山 做网站公司/网站制作app
  • 企业信用查询平台/二十个优化
  • 视频解析网站怎么做/网络推广哪个好
  • 做网站小程序多少钱/b站推广2023
  • 网站建设模版/技师培训
  • 项链seo关键词/网站seo综合查询
  • 天眼查网站建设公司/网络推广工作好做不
  • 东莞注册公司需要什么资料/seo外链建设方法
  • 做网站为什么要服务器/怎么登录百度app
  • 动态网站系统的5个组成部分/360点睛实效平台推广
  • 专业网站制作公司咨询/北京软件开发公司
  • 长垣网站建设/百度搜索引擎官网入口
  • 安卓app开发工具/苏州网站关键字优化
  • 花店网站建设环境分析/互联网营销师是什么
  • 邢台网站制作公司哪家专业/百度自动驾驶技术
  • 百度外卖网站建设与维护方法/百度大数据中心
  • 养老院微网站建设方案/天津优化代理
  • 玉林做网站/网站排名靠前方法
  • 专业做网站的页面设计/网文网站排名
  • 广东省政府网站建设/1个百度指数代表多少搜索
  • 有什么做家常菜的网站/一般的电脑培训班要多少钱
  • 有做国际网站生意吗/移动端关键词优化
  • 视频拍摄设备/网站内部seo优化包括
  • 会员卡管理系统软件哪个好用/盐城seo优化
  • 建设银行违法网站/郑州网络推广大包
  • 义乌门户网站建设/工厂管理培训课程
  • 网站建设公司的pest分析/优化怎么做
  • 白玉网站建设/品牌运营策划
  • 深度学习TR3周:Pytorch复现Transformer
  • 深入解析 Apache Tomcat 配置文件
  • WSUS服务器数据库维护与性能优化技术白皮书
  • (FD Conv)Frequency Dynamic Convolution for Dense Image Prediction论文精读(逐段解析)
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(四级)
  • Linux网络编程 ---五种IO模型