【问题标题】:Customizing QDateEdit style自定义 QDateEdit 样式
【发布时间】:2015-06-17 19:01:30
【问题描述】:

我怎样才能得到如图所示的 QDateEdit 外观?

我尝试过更改样式表,但不知道如何实现按钮和编辑之间的间距,也不知道如何更改向下箭头按钮。

【问题讨论】:

  • 你能发布你目前的样式表吗?
  • 我不确定如何设置 QDateEdit 本身的样式 - 我的猜测是,由于小部件内部使用按钮和文本控件或其他东西,您可以尝试使用 QPushButton 说明符来覆盖样式按钮和 QLineEdit 来覆盖文本输入的样式,但这只是一个假设。
  • @ValentinHeinitz 好吧,我已经删除了评论,因为我对您的why 问题的回答需要大量解释,不适合这里。它更像是一篇博客文章,而不是评论答案,而且有点离题。对此感到抱歉。此外,您可以尝试查找一些关于为什么不使用 qt 样式表的文章。在这种情况下,我建议删除您的 cmets 两个,因为我删除了自己的。
  • @VictorPolevoy:我希望我们谈论的是同一件事。在 Qt3 中有 Qt 自己的样式表系统。必须在 C++ 中实现样式。在 Qt4 中,他们引入了一种类似于 CSS 的新方法,但也保留了旧的类。也许你说的是旧的?另一个问题是,在 QtCreator 中为每个元素单独更改样式表可能会导致混乱。我建议创建一个应用程序范围的样式表文件 (qss) 并在应用程序启动时应用它。我什至使用公司范围的样式,所以客户的所有应用看起来都相似。
  • 请检查我的编辑。

标签: c++ qt


【解决方案1】:

它接近您发布的图像:

QDateEdit
{
    background-color: white;
    border-style: solid;
    border-width: 4px;
    border-color: rgb(100,100,100);
    spacing: 5px; 
}


QDateEdit::drop-down {
    image: url(:/new/myapp/cbarrowdn.png);
    width:50px;
    height:15px;
    subcontrol-position: right top;
    subcontrol-origin:margin;
    background-color: white;
    border-style: solid;
    border-width: 4px;
    border-color: rgb(100,100,100);
   spacing: 5px; 
}

也许这里的关键词是“子控制”。 DateEdit 或 Combo-Box 或其他任何东西的箭头不应用父控件中定义的所有样式定义。您必须了解如何为每个 Qt-Class 处理这些子控件并为每个子控件自定义样式。

我希望这些链接会有所帮助:

http://doc.qt.io/qt-4.8/stylesheet-customizing.html

http://doc.qt.io/qt-4.8/stylesheet-examples.html

【讨论】:

  • 如果您使用 calendarPopup 选项,则只有一个箭头。感谢您的建议。
  • 它的 QDateEdit::drop-down.
  • 是的,我想通了,并设法实现了上面的外观。如果你修正你的答案,我会接受它。感谢您的帮助!
  • 好的,太好了,我已经删除了旧答案,只留下了有用的部分。
  • 如何在 QT Designer Studio 中或使用 python 来实现?
猜你喜欢
  • 1970-01-01
  • 2011-08-10
  • 2017-02-10
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
相关资源
最近更新 更多