initial fluent-widgets ui
This commit is contained in:
71
examples/dialog_flyout/custom_message_box/demo.py
Normal file
71
examples/dialog_flyout/custom_message_box/demo.py
Normal file
@ -0,0 +1,71 @@
|
||||
# coding:utf-8
|
||||
import sys
|
||||
|
||||
from PySide6.QtCore import Qt, QUrl
|
||||
from PySide6.QtGui import QIcon, QColor
|
||||
from PySide6.QtWidgets import QApplication, QWidget, QHBoxLayout
|
||||
|
||||
from qfluentwidgets import MessageBoxBase, SubtitleLabel, LineEdit, PushButton, CaptionLabel, setTheme, Theme
|
||||
|
||||
|
||||
class CustomMessageBox(MessageBoxBase):
|
||||
""" Custom message box """
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self.titleLabel = SubtitleLabel('打开 URL', self)
|
||||
self.urlLineEdit = LineEdit(self)
|
||||
|
||||
self.urlLineEdit.setPlaceholderText('输入文件、流或者播放列表的 URL')
|
||||
self.urlLineEdit.setClearButtonEnabled(True)
|
||||
|
||||
self.warningLabel = CaptionLabel("The url is invalid")
|
||||
self.warningLabel.setTextColor("#cf1010", QColor(255, 28, 32))
|
||||
|
||||
# add widget to view layout
|
||||
self.viewLayout.addWidget(self.titleLabel)
|
||||
self.viewLayout.addWidget(self.urlLineEdit)
|
||||
self.viewLayout.addWidget(self.warningLabel)
|
||||
self.warningLabel.hide()
|
||||
|
||||
# change the text of button
|
||||
self.yesButton.setText('打开')
|
||||
self.cancelButton.setText('取消')
|
||||
|
||||
self.widget.setMinimumWidth(350)
|
||||
|
||||
# self.hideYesButton()
|
||||
|
||||
def validate(self):
|
||||
""" Rewrite the virtual method """
|
||||
isValid = self.urlLineEdit.text().lower().startswith("http://")
|
||||
self.warningLabel.setHidden(isValid)
|
||||
self.urlLineEdit.setError(not isValid)
|
||||
return isValid
|
||||
|
||||
|
||||
class Demo(QWidget):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
# setTheme(Theme.DARK)
|
||||
# self.setStyleSheet('Demo{background:rgb(32,32,32)}')
|
||||
|
||||
self.hBxoLayout = QHBoxLayout(self)
|
||||
self.button = PushButton('打开 URL', self)
|
||||
|
||||
self.resize(600, 600)
|
||||
self.hBxoLayout.addWidget(self.button, 0, Qt.AlignCenter)
|
||||
self.button.clicked.connect(self.showDialog)
|
||||
|
||||
def showDialog(self):
|
||||
w = CustomMessageBox(self)
|
||||
if w.exec():
|
||||
print(w.urlLineEdit.text())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
w = Demo()
|
||||
w.show()
|
||||
app.exec()
|
||||
Reference in New Issue
Block a user