2015-04-22 96 views
0

在PyQt4中,我想呈现一个QPushButton,看起来像QComboBox中的向下箭头按钮。可行的,如果是的话,如何?PyQt:显示QPushButton,看起来像QComboBox中的向下箭头按钮

我不需要帮助让我的新组件像QComboBox一样工作(见下文)。我只想让QPushButton的显示/图形看起来就像QComboBox中的向下箭头按钮一样 - 以及关于如何将该图形(尤其是如果所述图形通过文件来)叠加到我自己的QPushButton上的提示/代码。

更多细节,背景:

我正在寻找替换用QLineEdit的+ QCalendarWidget一个QComboBox控件,因为QDateEdit是不是定制的,因为我需要(我想...)。我们的想法是将一个QPushButton放置在QLineEdit的紧邻(在右侧),以使它看起来像常规的QComboBox尽可能多。然后说按钮将.exec_()QCalendarWidget(它在技术上由QDialog包装)。

让我知道如果这没有意义,我可以提供进一步或澄清的上下文。

+0

这是值得问一个单独的问题,是否可以做'QDateEdit'做你想做的。我不怀疑自定义小部件可以按照您在这里描述的方式创建,但可能需要做很多工作才能使其行为/看起来完全像'QComboBox'。 –

+0

@three_pineapples感谢您的留言。制作我自己的小部件Gizmo似乎比发布问题更简单(在短期内)。而且我越来越有信心QDateEdit不能满足我的要求。但是我可能会在稍后发布另一个问题。可能与我的替代方案的完成代码解决方案。此外,至少现在,我需要的只是一个按钮,它看起来像一个QComboBox向下箭头按钮。我可以处理(我认为)实现所有功能。这只是我所担心的美学;我相应地更新了上述问题。 –

+0

所有的后端功能现在都能正常工作,而且效果很好。我现在需要找出按钮文件/图形(也许我只是从正在运行的QComboBox中截屏),如何在QPushButton上叠加所述图形,然后如何将紧邻我的日历的QPushButton对齐 - enabled-QLineEdit(这是“后端功能”)小部件。由于没有明确的答案,我将试图调查如何独立完成此操作。 –

回答

2

您可以尝试使用QToolButton而不带文本,arrowType属性设置为Qt.DownArrow。例如:myqtoolbutton.setArrowType(Qt.DownArrow)

+0

非常好。它看起来不像QComoboBox,但并不需要,反正它已经足够接近了。感谢@Frodon,这为我节省了时间,试图实现一个更少优雅的解决方案。注意:它是'Qt.DownArrow',我已经编辑了你的答案。 –

+0

好吧,@Bryan拒绝了我的编辑。好像他经常拒绝编辑,我担心他没有在他的评论中投入太多的思想和精力 - 我意识到他可能需要审查很多编辑内容,这可能很麻烦并且很困难。 Bryan,Frodon的答案有轻微的技术故障,需要纠正。请仔细阅读我的编辑内容 - 谢谢。 –

+0

@JohnnyUtahh我应用了你的编辑(事实上我没有检查'DownArrow'的命名空间,谢谢) – Frodon