本文整理汇总了Python中PyQt5.QtWidgets.QWidget.geometry方法的典型用法代码示例。如果您正苦于以下问题:Python QWidget.geometry方法的具体用法?Python QWidget.geometry怎么用?Python QWidget.geometry使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QWidget
的用法示例。
在下文中一共展示了QWidget.geometry方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DialogContainer
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import geometry [as 别名]
class DialogContainer(QWidget):
def __init__(self, parent):
QWidget.__init__(self, parent)
self.setStyleSheet("background-color: rgba(30, 30, 30, 0.75);")
self.dialog_widget = QWidget(self)
self.window().resize_event.connect(self.on_main_window_resize)
def paintEvent(self, _):
opt = QStyleOption()
opt.initFrom(self)
painter = QPainter(self)
self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)
def close_dialog(self):
try:
self.setParent(None)
self.deleteLater()
except RuntimeError:
pass
def on_main_window_resize(self):
if not self or not self.parentWidget():
return
self.setFixedSize(self.parentWidget().size())
self.dialog_widget.setFixedWidth(self.width() - 100)
self.dialog_widget.move(QPoint(self.geometry().center().x() - self.dialog_widget.geometry().width() / 2,
self.geometry().center().y() - self.dialog_widget.geometry().height() / 2))
示例2: __init__
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import geometry [as 别名]
def __init__(self, parent: QtWidgets.QWidget, content, fade_duration=2000, stay_duration=2000,
position_constraint: RelativeLayoutConstraint = None):
"""
:param parent: parent widget (QWidget)
:param content: either a widget or a string (is then placed into a QLabel widget) style it with stylesheet
and modifier 'notification'
:param fade_duration: duration of fade in/out in ms
:param stay_duration: duration of stay in ms (if 0 stays forever)
:param position_constraint: a RelativeLayoutConstraint to be used with method calculate_relative_position()
"""
super().__init__()
# create a clickable widget as standalone window and without a frame
self.widget = ClickableWidget(parent, QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint)
# widget must be translucent, otherwise when setting semi-transparent background colors
self.widget.setAttribute(QtCore.Qt.WA_TranslucentBackground)
# connect widget clicked signal to our clicked signal
self.widget.clicked.connect(self.clicked.emit)
# replace content by QLabel if content is a string
if isinstance(content, str):
content = QtWidgets.QLabel(content)
content.setObjectName('notification-label')
# set background
layout = QtWidgets.QVBoxLayout(self.widget)
layout.setContentsMargins(0, 0, 0, 0)
layout.addWidget(content)
# fade animation
self.fade = FadeAnimation(self.widget)
self.fade.set_duration(fade_duration)
# fading out and waiting for fading out makes only sense if a positive stay_duration has been given
if stay_duration > 0:
# when fade out has finished, emit finished
self.fade.fadeout_finished.connect(self.finished.emit)
# timer for fading out animation
self.timer = QtCore.QTimer()
self.timer.setSingleShot(True)
self.timer.setInterval(stay_duration)
self.timer.timeout.connect(self.fade.fadeout)
# start the timer as soon as the fading in animation has finished
self.fade.fadein_finished.connect(self.timer.start)
# if given, set a position
if parent is not None and position_constraint is not None:
x, y = calculate_relative_position(parent.geometry(), content.sizeHint(), position_constraint)
self.widget.move(QtCore.QPoint(x, y))
示例3: DialogContainer
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import geometry [as 别名]
class DialogContainer(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.setStyleSheet("background-color: rgba(30, 30, 30, 0.75);")
self.dialog_widget = QWidget(self)
self.window().resize_event.connect(self.on_main_window_resize)
def paintEvent(self, event):
opt = QStyleOption()
opt.initFrom(self)
painter = QPainter(self)
self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)
def on_main_window_resize(self):
self.setFixedSize(self.parentWidget().size())
self.dialog_widget.setFixedWidth(self.width() - 100)
self.dialog_widget.move(QPoint(self.geometry().center().x() - self.dialog_widget.geometry().width() / 2,
self.geometry().center().y() - self.dialog_widget.geometry().height() / 2))
示例4: print
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import geometry [as 别名]
btn.move(20, 20)
#不同操作系统可能对窗口最小宽度有规定,若设置宽度小于规定值,则会以规定值进行显示
widget.resize(300, 200)
#以屏幕左上角为(0, 0)点
widget.move(250, 200)
widget.setWindowTitle('PyQt坐标系统例子')
widget.show()
print("#1 QWidget")
print("widget.x()=%d" % widget.x() )
print("widget.y()=%d" % widget.y() )
print("widget.width()=%d" % widget.width() )
print("widget.height()=%d" % widget.height() )
print("#2 QWidget.geometry")
print("widget.geometry().x()=%d" % widget.geometry().x() )
print("widget.geometry().y()=%d" % widget.geometry().y() )
print("widget.geometry().width()=%d" % widget.geometry().width() )
print("widget.geometry().height()=%d" % widget.geometry().height() )
print("widget.size().width() =%d" % widget.size().width() )
print("widget.size().height() =%d" % widget.size().height() )
print("#3 QWidget.frameGeometry")
print("widget.frameGeometry().width()=%d" % widget.frameGeometry().width() )
print("widget.frameGeometry().height()=%d" % widget.frameGeometry().height() )
print("widget.pos().x()=%d" % widget.pos().x() )
print("widget.pos().y()=%d" % widget.pos().y() )
sys.exit(app.exec_())