def init_ui(self, top_bar_type): # 最小化 self.minus.setFont(qtawesome.font('fa', 25)) self.minus.setObjectName("minus") self.minus.clicked.connect(lambda: self.minus_signal.emit()) # 最大化 self.plus.setFont(qtawesome.font('fa', 25)) self.plus.setObjectName("plus") # 关闭 self.power_off.setFont(qtawesome.font('fa', 25)) self.power_off.setObjectName("power_off") self.power_off.clicked.connect(lambda: self.power_off_signal.emit()) self.grid.addWidget(self.minus, 0, 4) self.grid.addWidget(self.plus, 0, 5) self.grid.addWidget(self.power_off, 0, 6) # 处理不同风格,wide是登陆界面的风格 if top_bar_type == "wide": self.grid.setColumnStretch(0, 5) self.grid.setColumnStretch(1, 5) self.grid.setColumnStretch(2, 5) self.grid.setColumnStretch(4, 1) self.grid.setColumnStretch(5, 1) self.grid.setColumnStretch(6, 1) self.grid.setRowStretch(0, 5) self.grid.setRowStretch(1, 5) self.grid.setRowStretch(2, 5) self.grid.setRowStretch(3, 5) self.grid.setSpacing(20) self.setLayout(self.grid) self.setContentsMargins(0, 0, 0, 0)
def __init__(self): super(Window, self).__init__() map_window = MapWindow() self.takeoffland = TakeoffLandButton() self.armdisarm = ArmDisarmButton() self.goto = GotoLocationButton(map_window) self.flight_mode = QLabel("Flight mode: ", self) self.arm = QLabel("DISARM", self) self.altitude = QLabel("Altitude: ", self) self.battery_widget = QLabel(unichr(0xf079)) self.battery_widget.setFont(qta.font('mdi', 16)) self.battery = QLabel("Battery: ", self) # self.satellite_widget = qta.IconWidget() # satellite_icon = qta.icon('mdi.satellite-variant', scale_factor=1.1) # self.satellite_widget.setIcon(satellite_icon) self.satellite_widget = QLabel(unichr(0xf471)) self.satellite_widget.setFont(qta.font('mdi', 16)) self.gps_info = QLabel("GPS info: ", self) self.position_widget = QLabel("Pos: ", self) layout = QVBoxLayout(self) layout.addWidget(map_window) layout.addStretch(1) layout.addWidget(self.position_widget) layout.addStretch(1) layout.addWidget(self.goto) layout.addStretch(1) layout.addWidget(self.arm) layout.addStretch(1) layout.addWidget(self.flight_mode) layout.addStretch(1) layout.addWidget(self.altitude) layout.addStretch(1) hbox = QHBoxLayout() hbox.addWidget(self.battery_widget) hbox.addWidget(self.battery) layout.addLayout(hbox) layout.addStretch(1) hbox = QHBoxLayout() hbox.addWidget(self.satellite_widget) hbox.addWidget(self.gps_info) layout.addLayout(hbox) layout.addWidget(self.armdisarm) layout.addStretch(1) layout.addWidget(self.takeoffland) layout.addStretch(1) # self.setGeometry(100,100,150,150) self.setLayout(layout)
def set_up(self): middle_widget = QWidget() self.middle_layout = QGridLayout() middle_widget.setLayout(self.middle_layout) for i in range(self.row): middle_icon = QLabel(chr(0xf002) + f'目录_{i}:') middle_icon.setFont(qtawesome.font('fa', 12)) middle_icon.setFixedSize(50, self.height) middle_input = QLineEdit() middle_input.setFixedHeight(self.height) middle_input.setObjectName(f'middle_input_{i}') middle_btn = QPushButton("…") middle_btn.setFixedSize(50, self.height) middle_btn.setObjectName(f'middle_btn_{i}') middle_btn.setToolTip('点击选择文件') middle_btn.clicked.connect(lambda: self.open_file(middle_widget)) self.middle_layout.addWidget(middle_icon, i, 0, 1, 1) self.middle_layout.addWidget(middle_input, i, 1, 1, self.row - 1) self.middle_layout.addWidget(middle_btn, i, self.row, 1, 1) middle_icon = QLabel(chr(0xf002) + f'目录_{i}:') middle_icon.setFont(qtawesome.font('fa', 12)) middle_icon.setFixedSize(50, self.height) self.middle_time = QLineEdit() self.middle_time.setFixedHeight(self.height) self.middle_time.setObjectName(f'middle_input_{i}') btn = QPushButton("选择日期") btn.clicked.connect(self.openCalendar) self.cal = QCalendarWidget() self.cal.setGridVisible(True) # 是否显示日期之间的网格 self.cal.setFixedSize(250, 200) self.cal.hide() # 隐藏日期控件 self.cal.clicked[QDate].connect( self.showDate) # clicked[参数],即定义showDate是传入的参数类型设置 self.middle_layout.addWidget(middle_icon, 2, 0, 1, 1) self.middle_layout.addWidget(self.middle_time, 2, 1, 1, self.row - 1) self.middle_layout.addWidget(btn, 2, self.row, 1, 1) self.middle_layout.addWidget(self.cal, 3, 1, 1, 1) self.middle_layout.setAlignment(Qt.AlignTop) self._obj.mid_layout.addWidget(middle_widget, 0, 0, 1, 1) set_first_mode_style(middle_widget) return True
def init_ui(self): # 设置部件 search_icon = QLabel(chr(0xf002)) search_icon.setFont(qtawesome.font('fa', 20)) search_icon.setStyleSheet(''' border: none; color: rgb(183, 176, 176); margin: 0; padding: 0; ''') qle = QLineEdit() qle.setPlaceholderText("搜索") qle.setClearButtonEnabled(True) qle.setFocusPolicy(Qt.ClickFocus) qle.setStyleSheet(''' border: none; background: transparent; ''') # 设置布局 gird = QGridLayout() gird.addWidget(search_icon, 0, 0, 1, 1) gird.addWidget(qle, 0, 2) # 应用布局 self.setLayout(gird) self.setStyleSheet(''' background: rgb(240, 240, 240); border-radius: 20px; padding: 0; ''')
def addToolTip(self, tip: str): """ Add icon for tooltip """ self.setToolTip(tip) self.setFont(qtawesome.font('fa', 13)) self.setText(self.text() + ' ' + chr(0xf059))
def set_up(self): middle_widget = QWidget() self.middle_layout = QGridLayout() middle_widget.setLayout(self.middle_layout) for i in range(self.row): middle_icon = QLabel(chr(0xf002) + f'目录_{i}:') middle_icon.setFont(qtawesome.font('fa', 12)) middle_icon.setFixedSize(50, self.height) middle_input = QLineEdit() middle_input.setFixedHeight(self.height) middle_input.setObjectName(f'middle_input_{i}') middle_btn = QPushButton("…") middle_btn.setFixedSize(50, self.height) middle_btn.setObjectName(f'middle_btn_{i}') middle_btn.setToolTip('点击选择文件') middle_btn.clicked.connect(lambda: self.open_file(middle_widget)) self.middle_layout.addWidget(middle_icon, i, 0, 1, 1) self.middle_layout.addWidget(middle_input, i, 1, 1, self.row - 1) self.middle_layout.addWidget(middle_btn, i, self.row, 1, 1) self.middle_layout.setAlignment(Qt.AlignTop) self._obj.mid_layout.addWidget(middle_widget, 0, 0, 1, 1) set_first_mode_style(middle_widget) return True
def init_ui(self, username): # 头像图标 head = QLabel(chr(0xf2bd)) head.setFont(qtawesome.font('fa', 30)) # 用户名 user = QLabel(username) self.grid.addWidget(head, 0, 0) self.grid.addWidget(user, 0, 2) self.setLayout(self.grid)
def init_ui(self): # 用户头像,使用文字图标 head = ClickLabel(chr(0xf2bd)) head.setFont(qtawesome.font('fa', 50)) # 聊天图标 chat = ClickLabel(chr(0xf086)) chat.setFont(qtawesome.font('fa', 30)) chat.setObjectName("chat") # 设置,暂不需要,关闭 # setting = ClickLabel(chr(0xf0ad)) # setting.setFont(qtawesome.font("fa", 30)) # 关于图标 about = ClickLabel(chr(0xf129)) about.setFont(qtawesome.font('fa', 30)) about.clicked.connect(self.tip) # 关闭程序,暂不需要,关闭 # power_off = ClickLabel(chr(0xf011)) # power_off.setFont(qtawesome.font('fa', 30)) # power_off.setObjectName("power_off") # power_off.clicked.connect(lambda: self.close_connect.emit()) # 网格布局 gird = QGridLayout() gird.addWidget(head, 0, 0, alignment=Qt.AlignCenter) gird.addWidget(chat, 1, 0, alignment=Qt.AlignCenter) # gird.addWidget(setting, 2, 0, alignment=Qt.AlignCenter) gird.addWidget(about, 2, 0, alignment=Qt.AlignCenter) # gird.addWidget(power_off, 5, 0, alignment=Qt.AlignCenter) gird.setSpacing(20) # 设置各行比例 gird.setRowStretch(0, 10) gird.setRowStretch(1, 5) gird.setRowStretch(2, 5) gird.setRowStretch(3, 5) gird.setRowStretch(4, 70) gird.setRowStretch(5, 10) self.setLayout(gird)
def createWidgets(self): content = QGridLayout() lblFile = QLabel(self.file, self) label = QLabel(unichr(0xf00c)) label.setFont(qta.font('fa', 16)) label.setStyleSheet("QLabel {color : green}") lblFile.setFixedWidth(550) lblFile.setWordWrap(True) content.addWidget(lblFile, 0, 0) content.addWidget(label, 0, 1) self.setLayout(content)
def init_ui(self): self.bt_search.setFont(qtawesome.font('fa', 16)) self.bt_search.setText(chr(0xf002) + ' ' + '搜索') #qtawesome用法 #icon_close=qtawesome.icon("fa.close",color='white') #self.btclose.setIcon(icon_close) # self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 self.setWindowOpacity(1) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.tabWidget.setTabText(0, "项目浏览") self.tabWidget.setTabsClosable(1) self.tabWidget.tabBar().setTabButton(0, QtWidgets.QTabBar.RightSide, None) self.tabWidget.tabCloseRequested.connect(self.mclose)
def init_ui(self): # 头像图标 self.head.setFont(qtawesome.font('fa', 120)) self.head.setObjectName("head") # 添加部件 self.grid.addWidget(self.head, 0, 0, 1, 1) self.grid.addWidget(self.input_message, 0, 2, 1, 4) self.grid.addWidget(self.confirm, 3, 2, 1, 1) self.grid.addWidget(self.register, 3, 4, 1, 1) # 设置间距 self.grid.setSpacing(30) # 应用布局 self.setLayout(self.grid) # 设置边距 self.setContentsMargins(20, 10, 20, 10) # 处理信号 self.confirm.clicked.connect(lambda: self.emit_signal("login")) self.register.clicked.connect(lambda: self.emit_signal("register"))
def init_ui(self): # 表情图标 self.expression.setFont(qtawesome.font('fa', 22)) # 上传文件图标 # self.upload_file.setText(chr(0xf07b)) # self.upload_file.setFont(qtawesome.font('fa', 22)) self.grid.addWidget(self.expression, 0, 0, alignment=Qt.AlignLeft) # self.grid.addWidget(self.upload_file, 0, 1, alignment=Qt.AlignLeft) # 设置列比例 self.grid.setColumnStretch(0, 10) # self.grid.setColumnStretch(1, 10) self.grid.setColumnStretch(2, 100) self.setLayout(self.grid) # 处理信号 self.expression.clicked.connect(lambda: self.expression_widget.show()) self.expression_widget.expression_signal.connect(self.add_expression)
def init_ui(self, **kwargs): # 头像图标 head = QLabel(chr(0xf2bd)) head.setFont(qtawesome.font('fa', 25)) # 用户名 name = QLabel(kwargs['name']) # 消息,消息不能过长,所有每35个字符后,加一个换行 message = QLabel( re.sub(r"(.{35})", "\\1\n", emoji.emojize(kwargs['message']))) # 边距 message.setContentsMargins(0, 0, 0, 0) message.setObjectName("message") # 对齐方式 alignment = kwargs['alignment'] if not alignment or alignment == "left": self.grid.addWidget(head, 0, 0) self.grid.addWidget(name, 0, 1) self.grid.addWidget(message, 1, 1) self.grid.setRowStretch(0, 5) self.grid.setRowStretch(1, 10) self.grid.setRowStretch(2, 1) self.grid.setColumnStretch(4, 5) else: self.grid.addWidget(head, 0, 6) self.grid.addWidget(name, 0, 4, 1, 1, alignment=Qt.AlignRight) self.grid.addWidget(message, 1, 4) self.grid.setColumnStretch(0, 10) # 间距 self.grid.setSpacing(10) # 应用 self.setLayout(self.grid) # 边距 self.setContentsMargins(10, 10, 10, 10)
def __init__(self, parent=None): super(Client, self).__init__(parent) self.networkSession = None self.blockSize = 0 self.currentFortune = '' self.title = "扫码收货PC辅助程序" hostLabel = QLabel('IP:') hostLabel.setFont(qtawesome.font('fa', 14)) portLabel = QLabel('端口:') portLabel.setFont(qtawesome.font('fa', 14)) taskCodeLabel = QLabel('任务码:') taskCodeLabel.setFont(qtawesome.font('fa', 14)) self.serverMsgLable = QLabel('来自服务端的消息:') self.serverMsgLable.setFont(qtawesome.font('fa', 14)) self.sendMsgLabel = QLabel('将要发送的消息:') self.sendMsgLabel.setFont(qtawesome.font('fa', 14)) self.hostCombo = QComboBox() self.hostCombo.setEditable(True) name = QHostInfo.localHostName() if name != '': self.hostCombo.addItem(name) domain = QHostInfo.localDomainName() if domain != '': self.hostCombo.addItem(name + '.' + domain) if name != 'localhost': self.hostCombo.addItem('10.286.88.124') ipAddressesList = QNetworkInterface.allAddresses() for ipAddress in ipAddressesList: if not ipAddress.isLoopback(): self.hostCombo.addItem(ipAddress.toString()) for ipAddress in ipAddressesList: if ipAddress.isLoopback(): self.hostCombo.addItem(ipAddress.toString()) self.portLineEdit = QLineEdit() self.portLineEdit.setValidator(QIntValidator(1, 65535, self)) self.portLineEdit.setPlaceholderText("请输入端口") self.taskLineEdit = QLineEdit() self.taskLineEdit.setPlaceholderText("请向组长询问后输入任务码") self.taskLineEdit.setValidator(QIntValidator(1, 9999, self)) self.serverLineEdit = QLineEdit() self.serverLineEdit.setPlaceholderText('服务器发送的消息会显示在这里') self.sendTextEdit = QTextEdit() self.sendTextEdit.setPlaceholderText('请输入先要发送给服务器的消息') hostLabel.setBuddy(self.hostCombo) portLabel.setBuddy(self.portLineEdit) taskCodeLabel.setBuddy(self.taskLineEdit) self.serverMsgLable.setBuddy(self.serverLineEdit) self.sendMsgLabel.setBuddy(self.sendTextEdit) self.statusLabel = QLabel("状态:尚未连接") self.statusLabel.setAutoFillBackground(True) self.statusLabel.setAlignment(Qt.AlignCenter) palette = QPalette() # 新建一个调色板 palette.setColor(QPalette.Window, Qt.red) # 设置颜色 self.statusLabel.setPalette(palette) self.statusLabel.setStyleSheet(''' color:#ffffff; font-size:18px; font-weight:bold; ''') self.getFortuneButton = QPushButton("启动连接") self.getFortuneButton.setDefault(True) self.getFortuneButton.setEnabled(False) quitButton = QPushButton("退出") self.stopButton = QPushButton("中止连接") self.stopButton.setDefault(True) self.stopButton.setEnabled(False) buttonBox = QDialogButtonBox() buttonBox.addButton(self.getFortuneButton, QDialogButtonBox.ActionRole) buttonBox.addButton(self.stopButton, QDialogButtonBox.AcceptRole) buttonBox.addButton(quitButton, QDialogButtonBox.RejectRole) self.sendMsgbutton = QPushButton('发送消息') self.webSocket = QWebSocket() self.hostCombo.editTextChanged.connect(self.enableGetFortuneButton) self.portLineEdit.textChanged.connect(self.enableGetFortuneButton) self.taskLineEdit.textChanged.connect(self.enableGetFortuneButton) self.getFortuneButton.clicked.connect(self.CreateNewConn) self.stopButton.clicked.connect(self.stopCurrentConn) quitButton.clicked.connect(self.close) self.webSocket.connected.connect(self.websocketConnect) self.webSocket.disconnected.connect(self.webSocketDisconnect) self.webSocket.error.connect(self.displayError) self.webSocket.textMessageReceived.connect( self.webSocketMessageReceived) self.sendTextEdit.textChanged.connect(self.enableSendMessageButton) self.sendMsgbutton.clicked.connect(self.sendMsgToServer) mainLayout = QGridLayout() mainLayout.addWidget(hostLabel, 0, 0) mainLayout.addWidget(self.hostCombo, 0, 1) mainLayout.addWidget(portLabel, 1, 0) mainLayout.addWidget(self.portLineEdit, 1, 1) mainLayout.addWidget(taskCodeLabel, 2, 0) mainLayout.addWidget(self.taskLineEdit, 2, 1) mainLayout.addWidget(self.statusLabel, 3, 0, 1, 2) mainLayout.addWidget(buttonBox, 4, 0, 1, 2) mainLayout.addWidget(self.serverMsgLable, 5, 0) mainLayout.addWidget(self.serverLineEdit, 5, 1, 1, 1) mainLayout.addWidget(self.sendMsgLabel, 6, 0) mainLayout.addWidget(self.sendTextEdit, 6, 1) mainLayout.addWidget(self.sendMsgbutton, 7, 0, 1, 5) self.serverLineEdit.setEnabled(False) self.serverMsgLable.setVisible(False) self.serverLineEdit.setVisible(False) self.sendMsgLabel.setVisible(False) self.sendTextEdit.setVisible(False) self.sendMsgbutton.setEnabled(False) self.sendMsgbutton.setVisible(False) self.setLayout(mainLayout) mainLayout.setSpacing(10) self.setWindowTitle(self.title) self.portLineEdit.setFocus() manager = QNetworkConfigurationManager() if manager.capabilities( ) & QNetworkConfigurationManager.NetworkSessionRequired: settings = QSettings(QSettings.UserScope, 'QtProject') settings.beginGroup('QtNetwork') id = settings.value('DefaultNetworkConfiguration') settings.endGroup() config = manager.configurationFromIdentifier(id) if config.state() & QNetworkConfiguration.Discovered == 0: config = manager.defaultConfiguration() self.networkSession = QNetworkSession(config, self) self.networkSession.opened.connect(self.sessionOpened) self.getFortuneButton.setEnabled(False) self.statusLabel.setText("Opening network session.") self.networkSession.open()
def init_ui(self): self.setFixedSize(960, 700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 '''d1''' self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_label_1 = QtWidgets.QPushButton("每日推荐") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("我的音乐") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("联系与帮助") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton( qtawesome.icon('fa.music', color='white'), "华语流行") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton( qtawesome.icon('fa.sellsy', color='white'), "在线FM") self.left_button_2.setObjectName('left_button') self.left_button_3 = QtWidgets.QPushButton( qtawesome.icon('fa.film', color='white'), "热门MV") self.left_button_3.setObjectName('left_button') self.left_button_4 = QtWidgets.QPushButton( qtawesome.icon('fa.home', color='white'), "本地音乐") self.left_button_4.setObjectName('left_button') self.left_button_5 = QtWidgets.QPushButton( qtawesome.icon('fa.download', color='white'), "下载管理") self.left_button_5.setObjectName('left_button') self.left_button_6 = QtWidgets.QPushButton( qtawesome.icon('fa.heart', color='white'), "我的收藏") self.left_button_6.setObjectName('left_button') self.left_button_7 = QtWidgets.QPushButton( qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_8 = QtWidgets.QPushButton( qtawesome.icon('fa.star', color='white'), "关注我们") self.left_button_8.setObjectName('left_button') self.left_button_9 = QtWidgets.QPushButton( qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_9.setObjectName('left_button') self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_2, 3, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 4, 0, 1, 3) self.left_layout.addWidget(self.left_label_2, 5, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_button_6, 8, 0, 1, 3) self.left_layout.addWidget(self.left_label_3, 9, 0, 1, 3) self.left_layout.addWidget(self.left_button_7, 10, 0, 1, 3) self.left_layout.addWidget(self.left_button_8, 11, 0, 1, 3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.left_widget = QtWidgets.QWidget() self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() self.left_widget.setLayout(self.left_layout) self.right_widget = QtWidgets.QWidget() self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) self.setCentralWidget(self.main_widget) self.right_bar = QtWidgets.QWidget() self.right_bar_layout = QtWidgets.QGridLayout() self.right_bar.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf002) + '' + '搜索') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText("输入歌手或者") self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_layout.addWidget(self.right_bar, 0, 0, 1, 9) self.right_recommend_label = QtWidgets.QLabel("今日推荐") self.right_recommend_label.setObjectName('right_lable') self.right_recommend_widget = QtWidgets.QWidget() # 推荐封面部件 self.right_recommend_layout = QtWidgets.QGridLayout() # 推荐封面网格布局 self.right_recommend_widget.setLayout(self.right_recommend_layout) self.recommend_button_1 = QtWidgets.QToolButton() self.recommend_button_1.setText("可馨HANM") # 设置按钮文本 self.recommend_button_1.setIcon(QtGui.QIcon('./p1.jpg')) # 设置按钮图标 self.recommend_button_1.setIconSize(QtCore.QSize(100, 100)) # 设置图标大小 self.recommend_button_1.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) # 设置按钮形式为上图下文 self.right_recommend_layout.addWidget(self.recommend_button_1, 0, 0) self.right_layout.addWidget(self.right_recommend_label, 1, 0, 1, 9) self.right_layout.addWidget(self.right_recommend_widget, 2, 0, 2, 9) '''self.button_1 = QtWidgets.QToolButton()
def init_ui(self): self.setFixedSize(960,700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget,0,0,12,2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget,0,2,12,10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_label_1 = QtWidgets.QPushButton("每日推荐") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("我的音乐") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("联系与帮助") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.music',color='white'),"华语流行") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.sellsy',color='white'),"在线FM") self.left_button_2.setObjectName('left_button') self.left_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.film',color='white'),"热门MV") self.left_button_3.setObjectName('left_button') self.left_button_4 = QtWidgets.QPushButton(qtawesome.icon('fa.home',color='white'),"本地音乐") self.left_button_4.setObjectName('left_button') self.left_button_5 = QtWidgets.QPushButton(qtawesome.icon('fa.download',color='white'),"下载管理") self.left_button_5.setObjectName('left_button') self.left_button_6 = QtWidgets.QPushButton(qtawesome.icon('fa.heart',color='white'),"我的收藏") self.left_button_6.setObjectName('left_button') self.left_button_7 = QtWidgets.QPushButton(qtawesome.icon('fa.comment',color='white'),"反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_8 = QtWidgets.QPushButton(qtawesome.icon('fa.star',color='white'),"关注我们") self.left_button_8.setObjectName('left_button') self.left_button_9 = QtWidgets.QPushButton(qtawesome.icon('fa.question',color='white'),"遇到问题") self.left_button_9.setObjectName('left_button') self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0,1,1) self.left_layout.addWidget(self.left_close, 0, 2,1,1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1,1,0,1,3) self.left_layout.addWidget(self.left_button_1, 2, 0,1,3) self.left_layout.addWidget(self.left_button_2, 3, 0,1,3) self.left_layout.addWidget(self.left_button_3, 4, 0,1,3) self.left_layout.addWidget(self.left_label_2, 5, 0,1,3) self.left_layout.addWidget(self.left_button_4, 6, 0,1,3) self.left_layout.addWidget(self.left_button_5, 7, 0,1,3) self.left_layout.addWidget(self.left_button_6, 8, 0,1,3) self.left_layout.addWidget(self.left_label_3, 9, 0,1,3) self.left_layout.addWidget(self.left_button_7, 10, 0,1,3) self.left_layout.addWidget(self.left_button_8, 11, 0,1,3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' '+'搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText("输入歌手、歌曲或用户,回车进行搜索") self.right_bar_layout.addWidget(self.search_icon,0,0,1,1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input,0,1,1,8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_recommend_label = QtWidgets.QLabel("今日推荐") self.right_recommend_label.setObjectName('right_lable') self.right_recommend_widget = QtWidgets.QWidget() # 推荐封面部件 self.right_recommend_layout = QtWidgets.QGridLayout() # 推荐封面网格布局 self.right_recommend_widget.setLayout(self.right_recommend_layout) self.recommend_button_1 = QtWidgets.QToolButton() self.recommend_button_1.setText("可馨HANM") # 设置按钮文本 self.recommend_button_1.setIcon(QtGui.QIcon('./r1.jpg')) # 设置按钮图标 self.recommend_button_1.setIconSize(QtCore.QSize(100,100)) # 设置图标大小 self.recommend_button_1.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # 设置按钮形式为上图下文 self.recommend_button_2 = QtWidgets.QToolButton() self.recommend_button_2.setText("那首歌") self.recommend_button_2.setIcon(QtGui.QIcon('./r2.jpg')) self.recommend_button_2.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_3 = QtWidgets.QToolButton() self.recommend_button_3.setText("伟大的渺小") self.recommend_button_3.setIcon(QtGui.QIcon('./r3.jpg')) self.recommend_button_3.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_4 = QtWidgets.QToolButton() self.recommend_button_4.setText("荣耀征战") self.recommend_button_4.setIcon(QtGui.QIcon('./r4.jpg')) self.recommend_button_4.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_5 = QtWidgets.QToolButton() self.recommend_button_5.setText("猎场合辑") self.recommend_button_5.setIcon(QtGui.QIcon('./r5.jpg')) self.recommend_button_5.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_5.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.right_recommend_layout.addWidget(self.recommend_button_1,0,0) self.right_recommend_layout.addWidget(self.recommend_button_2,0,1) self.right_recommend_layout.addWidget(self.recommend_button_3, 0, 2) self.right_recommend_layout.addWidget(self.recommend_button_4, 0, 3) self.right_recommend_layout.addWidget(self.recommend_button_5, 0, 4) self.right_layout.addWidget(self.right_recommend_label, 1, 0, 1, 9) self.right_layout.addWidget(self.right_recommend_widget, 2, 0, 2, 9) self.right_newsong_lable = QtWidgets.QLabel("最新歌曲") self.right_newsong_lable.setObjectName('right_lable') self.right_playlist_lable = QtWidgets.QLabel("热门歌单") self.right_playlist_lable.setObjectName('right_lable') self.right_newsong_widget = QtWidgets.QWidget() # 最新歌曲部件 self.right_newsong_layout = QtWidgets.QGridLayout() # 最新歌曲部件网格布局 self.right_newsong_widget.setLayout(self.right_newsong_layout) self.newsong_button_1 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_2 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_3 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_4 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_5 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_6 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") self.right_newsong_layout.addWidget(self.newsong_button_1,0,1,) self.right_newsong_layout.addWidget(self.newsong_button_2, 1, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_3, 2, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_4, 3, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_5, 4, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_6, 5, 1, ) self.right_playlist_widget = QtWidgets.QWidget() # 播放歌单部件 self.right_playlist_layout = QtWidgets.QGridLayout() # 播放歌单网格布局 self.right_playlist_widget.setLayout(self.right_playlist_layout) self.playlist_button_1 = QtWidgets.QToolButton() self.playlist_button_1.setText("无法释怀的整天循环音乐…") self.playlist_button_1.setIcon(QtGui.QIcon('./p1.jpg')) self.playlist_button_1.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_1.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_2 = QtWidgets.QToolButton() self.playlist_button_2.setText("不需要歌词,也可以打动你的心") self.playlist_button_2.setIcon(QtGui.QIcon('./p2.jpg')) self.playlist_button_2.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_3 = QtWidgets.QToolButton() self.playlist_button_3.setText("那些你熟悉又不知道名字…") self.playlist_button_3.setIcon(QtGui.QIcon('./p3.jpg')) self.playlist_button_3.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_4 = QtWidgets.QToolButton() self.playlist_button_4.setText("那些只听前奏就中毒的英文歌") self.playlist_button_4.setIcon(QtGui.QIcon('./p4.jpg')) self.playlist_button_4.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.right_playlist_layout.addWidget(self.playlist_button_1,0,0) self.right_playlist_layout.addWidget(self.playlist_button_2, 0, 1) self.right_playlist_layout.addWidget(self.playlist_button_3, 1, 0) self.right_playlist_layout.addWidget(self.playlist_button_4, 1, 1) self.right_layout.addWidget(self.right_newsong_lable, 4, 0, 1, 5) self.right_layout.addWidget(self.right_playlist_lable, 4, 5, 1, 4) self.right_layout.addWidget(self.right_newsong_widget, 5, 0, 1, 5) self.right_layout.addWidget(self.right_playlist_widget, 5, 5, 1, 4) self.right_process_bar = QtWidgets.QProgressBar() # 播放进度部件 self.right_process_bar.setValue(49) self.right_process_bar.setFixedHeight(3) # 设置进度条高度 self.right_process_bar.setTextVisible(False) # 不显示进度条文字 self.right_playconsole_widget = QtWidgets.QWidget() # 播放控制部件 self.right_playconsole_layout = QtWidgets.QGridLayout() # 播放控制部件网格布局层 self.right_playconsole_widget.setLayout(self.right_playconsole_layout) self.console_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.backward', color='#F76677'), "") self.console_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.forward', color='#F76677'), "") self.console_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.pause', color='#F76677', font=18), "") self.console_button_3.setIconSize(QtCore.QSize(30, 30)) self.right_playconsole_layout.addWidget(self.console_button_1, 0, 0) self.right_playconsole_layout.addWidget(self.console_button_2, 0, 2) self.right_playconsole_layout.addWidget(self.console_button_3, 0, 1) self.right_playconsole_layout.setAlignment(QtCore.Qt.AlignCenter) # 设置布局内部件居中显示 self.right_layout.addWidget(self.right_process_bar, 9, 0, 1, 9) self.right_layout.addWidget(self.right_playconsole_widget, 10, 0, 1, 9) self.left_close.setFixedSize(15,15) # 设置关闭按钮的大小 self.left_visit.setFixedSize(15, 15) # 设置按钮大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 self.left_close.setStyleSheet('''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''') self.left_visit.setStyleSheet('''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''') self.left_mini.setStyleSheet('''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''') self.left_widget.setStyleSheet(''' QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid white; font-size:18px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} ''') self.right_bar_widget_search_input.setStyleSheet( '''QLineEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; }''') self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_recommend_widget.setStyleSheet( ''' QToolButton{border:none;} QToolButton:hover{border-bottom:2px solid #F76677;} ''') self.right_playlist_widget.setStyleSheet( ''' QToolButton{border:none;} QToolButton:hover{border-bottom:2px solid #F76677;} ''') self.right_newsong_widget.setStyleSheet(''' QPushButton{ border:none; color:gray; font-size:12px; height:40px; padding-left:5px; padding-right:10px; text-align:left; } QPushButton:hover{ color:black; border:1px solid #F3F3F5; border-radius:10px; background:LightGray; } ''') self.right_process_bar.setStyleSheet(''' QProgressBar::chunk { background-color: #F76677; } ''') self.right_playconsole_widget.setStyleSheet(''' QPushButton{ border:none; } ''') self.setWindowOpacity(0.9) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 # palette = QtGui.QPalette() # palette.setColor(palette.Background, QtGui.QColor(0,0,0)) # self.setPalette(palette) self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint) # 隐藏边框 self.left_widget.setStyleSheet(''' QWidget#left_widget{ background:gray; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } ''') self.main_layout.setSpacing(0)
def init_ui(self): self.setFixedSize(960, 700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 #控件名,行,列,占用行数,占用列数,对齐方式 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_close = QtWidgets.QPushButton("关闭") # 关闭按钮 self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("最小化") # 最小化按钮 self.left_label_1 = QtWidgets.QPushButton("每日推荐") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("我的音乐") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("联系与帮助") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton( qtawesome.icon('fa.music', color='white'), "华语流行") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton( qtawesome.icon('fa.sellsy', color='white'), "在线FM") self.left_button_2.setObjectName('left_button') self.left_button_3 = QtWidgets.QPushButton( qtawesome.icon('fa.film', color='white'), "热门MV") self.left_button_3.setObjectName('left_button') self.left_button_4 = QtWidgets.QPushButton( qtawesome.icon('fa.home', color='white'), "本地音乐") self.left_button_4.setObjectName('left_button') self.left_button_5 = QtWidgets.QPushButton( qtawesome.icon('fa.download', color='white'), "下载管理") self.left_button_5.setObjectName('left_button') self.left_button_6 = QtWidgets.QPushButton( qtawesome.icon('fa.heart', color='white'), "我的收藏") self.left_button_6.setObjectName('left_button') self.left_button_7 = QtWidgets.QPushButton( qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_8 = QtWidgets.QPushButton( qtawesome.icon('fa.star', color='white'), "关注我们") self.left_button_8.setObjectName('left_button') self.left_button_9 = QtWidgets.QPushButton( qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_9.setObjectName('left_button') self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_2, 3, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 4, 0, 1, 3) self.left_layout.addWidget(self.left_label_2, 5, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_button_6, 8, 0, 1, 3) self.left_layout.addWidget(self.left_label_3, 9, 0, 1, 3) self.left_layout.addWidget(self.left_button_7, 10, 0, 1, 3) self.left_layout.addWidget(self.left_button_8, 11, 0, 1, 3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText( "输入歌手、歌曲或用户,回车进行搜索") self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_recommend_label = QtWidgets.QLabel("今日推荐") self.right_recommend_label.setObjectName('right_lable') self.right_recommend_widget = QtWidgets.QWidget() # 推荐封面部件 self.right_recommend_layout = QtWidgets.QGridLayout() # 推荐封面网格布局 self.right_recommend_widget.setLayout(self.right_recommend_layout) self.recommend_button_1 = QtWidgets.QToolButton() self.recommend_button_1.setText("可馨HANM") # 设置按钮文本 self.recommend_button_1.setIcon(QtGui.QIcon('./r1.jpg')) # 设置按钮图标 self.recommend_button_1.setIconSize(QtCore.QSize(100, 100)) # 设置图标大小 self.recommend_button_1.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) # 设置按钮形式为上图下文 self.recommend_button_2 = QtWidgets.QToolButton() self.recommend_button_2.setText("那首歌") self.recommend_button_2.setIcon(QtGui.QIcon('./r2.jpg')) self.recommend_button_2.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_2.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_3 = QtWidgets.QToolButton() self.recommend_button_3.setText("伟大的渺小") self.recommend_button_3.setIcon(QtGui.QIcon('./r3.jpg')) self.recommend_button_3.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_3.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_4 = QtWidgets.QToolButton() self.recommend_button_4.setText("荣耀征战") self.recommend_button_4.setIcon(QtGui.QIcon('./r4.jpg')) self.recommend_button_4.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_4.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_5 = QtWidgets.QToolButton() self.recommend_button_5.setText("猎场合辑") self.recommend_button_5.setIcon(QtGui.QIcon('./r5.jpg')) self.recommend_button_5.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_5.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.right_recommend_layout.addWidget(self.recommend_button_1, 0, 0) self.right_recommend_layout.addWidget(self.recommend_button_2, 0, 1) self.right_recommend_layout.addWidget(self.recommend_button_3, 0, 2) self.right_recommend_layout.addWidget(self.recommend_button_4, 0, 3) self.right_recommend_layout.addWidget(self.recommend_button_5, 0, 4) self.right_layout.addWidget(self.right_recommend_label, 1, 0, 1, 9) self.right_layout.addWidget(self.right_recommend_widget, 2, 0, 2, 9) self.right_newsong_lable = QtWidgets.QLabel("最新歌曲") self.right_newsong_lable.setObjectName('right_lable') self.right_playlist_lable = QtWidgets.QLabel("热门歌单") self.right_playlist_lable.setObjectName('right_lable') self.right_newsong_widget = QtWidgets.QWidget() # 最新歌曲部件 self.right_newsong_layout = QtWidgets.QGridLayout() # 最新歌曲部件网格布局 self.right_newsong_widget.setLayout(self.right_newsong_layout) self.newsong_button_1 = QtWidgets.QPushButton( "夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_2 = QtWidgets.QPushButton( "夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_3 = QtWidgets.QPushButton( "夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_4 = QtWidgets.QPushButton( "夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_5 = QtWidgets.QPushButton( "夜机 陈慧娴 永远的朋友 03::29") self.newsong_button_6 = QtWidgets.QPushButton( "夜机 陈慧娴 永远的朋友 03::29") self.right_newsong_layout.addWidget( self.newsong_button_1, 0, 1, ) self.right_newsong_layout.addWidget( self.newsong_button_2, 1, 1, ) self.right_newsong_layout.addWidget( self.newsong_button_3, 2, 1, ) self.right_newsong_layout.addWidget( self.newsong_button_4, 3, 1, ) self.right_newsong_layout.addWidget( self.newsong_button_5, 4, 1, ) self.right_newsong_layout.addWidget( self.newsong_button_6, 5, 1, ) self.right_playlist_widget = QtWidgets.QWidget() # 播放歌单部件 self.right_playlist_layout = QtWidgets.QGridLayout() # 播放歌单网格布局 self.right_playlist_widget.setLayout(self.right_playlist_layout) self.playlist_button_1 = QtWidgets.QToolButton() self.playlist_button_1.setText("无法释怀的整天循环音乐…") self.playlist_button_1.setIcon(QtGui.QIcon('./p1.jpg')) self.playlist_button_1.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_1.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_2 = QtWidgets.QToolButton() self.playlist_button_2.setText("不需要歌词,也可以打动你的心") self.playlist_button_2.setIcon(QtGui.QIcon('./p2.jpg')) self.playlist_button_2.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_2.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_3 = QtWidgets.QToolButton() self.playlist_button_3.setText("那些你熟悉又不知道名字…") self.playlist_button_3.setIcon(QtGui.QIcon('./p3.jpg')) self.playlist_button_3.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_3.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_4 = QtWidgets.QToolButton() self.playlist_button_4.setText("那些只听前奏就中毒的英文歌") self.playlist_button_4.setIcon(QtGui.QIcon('./p4.jpg')) self.playlist_button_4.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_4.setToolButtonStyle( QtCore.Qt.ToolButtonTextUnderIcon) self.right_playlist_layout.addWidget(self.playlist_button_1, 0, 0) self.right_playlist_layout.addWidget(self.playlist_button_2, 0, 1) self.right_playlist_layout.addWidget(self.playlist_button_3, 1, 0) self.right_playlist_layout.addWidget(self.playlist_button_4, 1, 1) self.right_layout.addWidget(self.right_newsong_lable, 4, 0, 1, 5) self.right_layout.addWidget(self.right_playlist_lable, 4, 5, 1, 4) self.right_layout.addWidget(self.right_newsong_widget, 5, 0, 1, 5) self.right_layout.addWidget(self.right_playlist_widget, 5, 5, 1, 4) # self.right_process_bar = QtWidgets.QProgressBar() # 播放进度部件 self.right_process_bar.setValue(49) self.right_process_bar.setFixedHeight(3) # 设置进度条高度 self.right_process_bar.setTextVisible(False) # 不显示进度条文字 self.right_playconsole_widget = QtWidgets.QWidget() # 播放控制部件 self.right_playconsole_layout = QtWidgets.QGridLayout() # 播放控制部件网格布局层 self.right_playconsole_widget.setLayout(self.right_playconsole_layout) self.console_button_1 = QtWidgets.QPushButton( qtawesome.icon('fa.backward', color='#F76677'), "") self.console_button_2 = QtWidgets.QPushButton( qtawesome.icon('fa.forward', color='#F76677'), "") self.console_button_3 = QtWidgets.QPushButton( qtawesome.icon('fa.pause', color='#F76677', font=18), "") self.console_button_3.setIconSize(QtCore.QSize(30, 30)) self.right_playconsole_layout.addWidget(self.console_button_1, 0, 0) self.right_playconsole_layout.addWidget(self.console_button_2, 0, 2) self.right_playconsole_layout.addWidget(self.console_button_3, 0, 1) self.right_playconsole_layout.setAlignment( QtCore.Qt.AlignCenter) # 设置布局内部件居中显示 self.right_layout.addWidget(self.right_process_bar, 9, 0, 1, 9) self.right_layout.addWidget(self.right_playconsole_widget, 10, 0, 1, 9) # self.left_close.setFixedSize(15, 15) # 设置关闭按钮的大小 self.left_visit.setFixedSize(15, 15) # 设置按钮大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''' ) self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''' ) self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''' )
def init_ui(self): self.setFixedSize(1500, 1000) #长*宽 self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_label_1 = QtWidgets.QPushButton("财务模块") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("报表模块") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("其它功能") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.sellsy', color='white'), "可供记账模板") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.sellsy', color='white'), "可供资产登记") self.left_button_2.setObjectName('left_button') self.left_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.sellsy', color='white'), "待补充") self.left_button_3.setObjectName('left_button') self.left_button_4 = QtWidgets.QPushButton(qtawesome.icon('fa.home', color='white'), "审核报表") self.left_button_4.setObjectName('left_button') self.left_button_5 = QtWidgets.QPushButton(qtawesome.icon('fa.home', color='white'), "统计报表") self.left_button_5.setObjectName('left_button') self.left_button_6 = QtWidgets.QPushButton(qtawesome.icon('fa.home', color='white'), "待补充") self.left_button_6.setObjectName('left_button') self.left_button_7 = QtWidgets.QPushButton(qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_8 = QtWidgets.QPushButton(qtawesome.icon('fa.star', color='white'), "关注我们") self.left_button_8.setObjectName('left_button') self.left_button_9 = QtWidgets.QPushButton(qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_9.setObjectName('left_button') self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_2, 3, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 4, 0, 1, 3) self.left_layout.addWidget(self.left_label_2, 5, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_button_6, 8, 0, 1, 3) self.left_layout.addWidget(self.left_label_3, 9, 0, 1, 3) self.left_layout.addWidget(self.left_button_7, 10, 0, 1, 3) self.left_layout.addWidget(self.left_button_8, 11, 0, 1, 3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText("输入路径、文件名或文件类型,回车进行搜索") self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_recommend_label = QtWidgets.QLabel("逻辑处理") self.right_recommend_label.setObjectName('right_lable') self.right_recommend_widget = QtWidgets.QWidget() # 推荐封面部件 self.right_recommend_layout = QtWidgets.QGridLayout() # 推荐封面网格布局 self.right_recommend_widget.setLayout(self.right_recommend_layout) self.recommend_button_1 = QtWidgets.QToolButton() self.recommend_button_1.setText("可供出售账户每月估值表1") # 设置按钮文本 self.recommend_button_1.setIcon(QtGui.QIcon('./r1.jpg')) # 设置按钮图标 self.recommend_button_1.setIconSize(QtCore.QSize(100, 100)) # 设置图标大小 self.recommend_button_1.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # 设置按钮形式为上图下文 # self.recommend_button_2 = QtWidgets.QToolButton() # self.recommend_button_2.setText("可供出售账户每月估值表2") # self.recommend_button_2.setIcon(QtGui.QIcon('./r2.jpg')) # self.recommend_button_2.setIconSize(QtCore.QSize(100, 100)) # self.recommend_button_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.recommend_button_3 = QtWidgets.QToolButton() # self.recommend_button_3.setText("可供出售账户每月估值表3") # self.recommend_button_3.setIcon(QtGui.QIcon('./r3.jpg')) # self.recommend_button_3.setIconSize(QtCore.QSize(100, 100)) # self.recommend_button_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.recommend_button_4 = QtWidgets.QToolButton() # self.recommend_button_4.setText("可供出售账户每月估值表4") # self.recommend_button_4.setIcon(QtGui.QIcon('./r4.jpg')) # self.recommend_button_4.setIconSize(QtCore.QSize(100, 100)) # self.recommend_button_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.recommend_button_5 = QtWidgets.QToolButton() # self.recommend_button_5.setText("可供出售账户每月估值表5") # self.recommend_button_5.setIcon(QtGui.QIcon('./r5.jpg')) # self.recommend_button_5.setIconSize(QtCore.QSize(100, 100)) # self.recommend_button_5.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.right_recommend_layout.addWidget(self.recommend_button_1, 0, 0) # self.right_recommend_layout.addWidget(self.recommend_button_2, 0, 1) # self.right_recommend_layout.addWidget(self.recommend_button_3, 0, 2) # self.right_recommend_layout.addWidget(self.recommend_button_4, 0, 3) # self.right_recommend_layout.addWidget(self.recommend_button_5, 0, 4) self.right_layout.addWidget(self.right_recommend_label, 1, 0, 1, 9) #self.right_layout.addWidget(self.right_recommend_widget, 2, 0, 2, 9) self.right_newsong_lable = QtWidgets.QLabel("最新歌曲") self.right_newsong_lable.setObjectName('right_lable') self.right_playlist_lable = QtWidgets.QLabel("热门歌单") self.right_playlist_lable.setObjectName('right_lable') # self.right_newsong_widget = QtWidgets.QWidget() # 最新歌曲部件 # self.right_newsong_layout = QtWidgets.QGridLayout() # 最新歌曲部件网格布局 # self.right_newsong_widget.setLayout(self.right_newsong_layout) # self.newsong_button_1 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") # self.newsong_button_2 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") # self.newsong_button_3 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") # self.newsong_button_4 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") # self.newsong_button_5 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") # self.newsong_button_6 = QtWidgets.QPushButton("夜机 陈慧娴 永远的朋友 03::29") # self.right_newsong_layout.addWidget(self.newsong_button_1, 0, 1, ) # self.right_newsong_layout.addWidget(self.newsong_button_2, 1, 1, ) # self.right_newsong_layout.addWidget(self.newsong_button_3, 2, 1, ) # self.right_newsong_layout.addWidget(self.newsong_button_4, 3, 1, ) # self.right_newsong_layout.addWidget(self.newsong_button_5, 4, 1, ) # self.right_newsong_layout.addWidget(self.newsong_button_6, 5, 1, ) # self.right_playlist_widget = QtWidgets.QWidget() # 播放歌单部件 # self.right_playlist_layout = QtWidgets.QGridLayout() # 播放歌单网格布局 # self.right_playlist_widget.setLayout(self.right_playlist_layout) # # self.playlist_button_1 = QtWidgets.QToolButton() # self.playlist_button_1.setText("无法释怀的整天循环音乐…") # self.playlist_button_1.setIcon(QtGui.QIcon('./p1.jpg')) # self.playlist_button_1.setIconSize(QtCore.QSize(100, 100)) # self.playlist_button_1.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.playlist_button_2 = QtWidgets.QToolButton() # self.playlist_button_2.setText("不需要歌词,也可以打动你的心") # self.playlist_button_2.setIcon(QtGui.QIcon('./p2.jpg')) # self.playlist_button_2.setIconSize(QtCore.QSize(100, 100)) # self.playlist_button_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.playlist_button_3 = QtWidgets.QToolButton() # self.playlist_button_3.setText("那些你熟悉又不知道名字…") # self.playlist_button_3.setIcon(QtGui.QIcon('./p3.jpg')) # self.playlist_button_3.setIconSize(QtCore.QSize(100, 100)) # self.playlist_button_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.playlist_button_4 = QtWidgets.QToolButton() # self.playlist_button_4.setText("那些只听前奏就中毒的英文歌") # self.playlist_button_4.setIcon(QtGui.QIcon('./p4.jpg')) # self.playlist_button_4.setIconSize(QtCore.QSize(100, 100)) # self.playlist_button_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # # self.right_playlist_layout.addWidget(self.playlist_button_1, 0, 0) # self.right_playlist_layout.addWidget(self.playlist_button_2, 0, 1) # self.right_playlist_layout.addWidget(self.playlist_button_3, 1, 0) # self.right_playlist_layout.addWidget(self.playlist_button_4, 1, 1) # # self.right_layout.addWidget(self.right_newsong_lable, 4, 0, 1, 5) # self.right_layout.addWidget(self.right_playlist_lable, 4, 5, 1, 4) # self.right_layout.addWidget(self.right_newsong_widget, 5, 0, 1, 5) # self.right_layout.addWidget(self.right_playlist_widget, 5, 5, 1, 4) # # self.right_process_bar = QtWidgets.QProgressBar() # 播放进度部件 # self.right_process_bar.setValue(49) # self.right_process_bar.setFixedHeight(3) # 设置进度条高度 # self.right_process_bar.setTextVisible(False) # 不显示进度条文字 # # self.right_playconsole_widget = QtWidgets.QWidget() # 播放控制部件 # self.right_playconsole_layout = QtWidgets.QGridLayout() # 播放控制部件网格布局层 # self.right_playconsole_widget.setLayout(self.right_playconsole_layout) # self.console_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.backward', color='#F76677'), "") # self.console_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.forward', color='#F76677'), "") # self.console_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.pause', color='#F76677', font=18), "") # self.console_button_3.setIconSize(QtCore.QSize(30, 30)) # # self.right_playconsole_layout.addWidget(self.console_button_1, 0, 0) # self.right_playconsole_layout.addWidget(self.console_button_2, 0, 2) # self.right_playconsole_layout.addWidget(self.console_button_3, 0, 1) # self.right_playconsole_layout.setAlignment(QtCore.Qt.AlignCenter) # 设置布局内部件居中显示 # self.right_layout.addWidget(self.right_process_bar, 9, 0, 1, 9) # self.right_layout.addWidget(self.right_playconsole_widget, 10, 0, 1, 9) self.left_close.setFixedSize(15, 15) # 设置关闭按钮的大小 self.left_visit.setFixedSize(15, 15) # 设置按钮大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''') self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''') self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButtoTn:hover{background:green;}''') self.left_widget.setStyleSheet(''' QWidget#left_widget{ background:gray; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid white; font-size:30px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} ''') self.right_bar_widget_search_input.setStyleSheet(''' QLineEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; } ''') self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_recommend_widget.setStyleSheet( ''' QToolButton{border:none;} QToolButton:hover{border-bottom:2px solid #F76677;} ''') # self.right_playlist_widget.setStyleSheet( # ''' # QToolButton{border:none;} # QToolButton:hover{border-bottom:2px solid #F76677;} # ''') # self.right_newsong_widget.setStyleSheet(''' # QPushButton{ # border:none; # color:gray; # font-size:12px; # height:40px; # padding-left:5px; # padding-right:10px; # text-align:left; # } # QPushButton:hover{ # color:black; # border:1px solid #F3F3F5; # border-radius:10px; # background:LightGray; # } # ''') # self.right_process_bar.setStyleSheet(''' # QProgressBar::chunk { # background-color: #F76677; # } # ''') # self.right_playconsole_widget.setStyleSheet(''' # QPushButton{ # border:none; # } # ''') self.setWindowOpacity(1) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.setWindowFlag(QtCore.Qt.FramelessWindowHint) self.main_layout.setSpacing(0)#去掉间隔线
def init_ui(self): self.setFixedSize(960,700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget,0,0,12,2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget,0,2,12,10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_ocr = QtWidgets.QPushButton("识别") # 关闭按钮 self.left_close = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.music',color='white'),"文本行识别") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.sellsy',color='white'),"单词识别") self.left_button_2.setObjectName('left_button') self.left_button_1.clicked.connect(self.line_ocr) self.left_button_2.clicked.connect(self.word_ocr) self.left_ocr.clicked.connect(self.do_ocr) self.left_layout.addWidget(self.left_mini, 0, 0,1,1) self.left_layout.addWidget(self.left_ocr, 0, 2,1,1) self.left_layout.addWidget(self.left_close, 0, 1, 1, 1) self.left_layout.addWidget(self.left_button_1, 1, 0,1,3) self.left_layout.addWidget(self.left_button_2, 2, 0,1,3) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QPushButton(chr(0xf002) + ' '+'选择图片') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() # self.right_bar_widget_search_input.setReadOnly(True) self.right_bar_widget_search_input.setPlaceholderText("图片路径") self.search_icon.clicked.connect(self.slot_btn_chooseFile) self.right_bar_layout.addWidget(self.search_icon,0,0,1,1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input,0,1,1,8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_picture_label = QtWidgets.QLabel("选取图片") self.right_picture_label.setObjectName('right_picture') self.right_picture = QtWidgets.QLabel("") # self.right_picture.setFixedSize(300, 200) self.right_result_label = QtWidgets.QLabel("识别结果") self.right_result_label.setObjectName('right_label') self.right_result = QtWidgets.QLabel("") self.right_layout.addWidget(self.right_picture_label, 1, 0, 1, 9) self.right_layout.addWidget(self.right_result_label, 3, 0, 1, 9) self.right_layout.addWidget(self.right_picture, 2, 0, 1, 9) self.right_layout.addWidget(self.right_result, 4, 0, 1, 9)
def init_ui(self): self.setWindowIcon(QIcon('./img/index.ico')) self.setWindowTitle("工具") # self.setFixedSize(960, 700) self.resize(960, 700) # self._center() self.main_widget = QWidget() # 创建窗口主部件 self.main_layout = QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 # 创建上侧部件 self.up_widget = QWidget() self.up_widget.setObjectName('up_widget') self.up_widget.setFixedHeight(80) self.up_layout = QGridLayout() self.up_widget.setLayout(self.up_layout) # 创建滚动条 self.slide = QScrollBar(True) self.slide.setObjectName('slide_roll_bar') self.slide.setMaximum(self.column) self.slide.setMinimum(self.num) self.slide.valueChanged.connect(self._value_change) # 创建中侧部件 self.mid_widget = QWidget() self.mid_widget.setObjectName('mid_widget') self.mid_layout = QGridLayout() self.mid_widget.setLayout(self.mid_layout) # 创建下侧部件 self.down_widget = QWidget() self.down_widget.setObjectName('down_widget') self.down_layout = QGridLayout() self.down_widget.setLayout(self.down_layout) self.main_layout.addWidget(self.up_widget, 0, 0, 1, self.column) self.main_layout.addWidget(self.slide, 1, 0, 1, self.column) self.main_layout.addWidget(self.mid_widget, 2, 2, 1, self.column - 2) self.main_layout.addWidget(self.down_widget, 3, self.column - 1, self.row, 1) self.setCentralWidget(self.main_widget) # 创建头部(head) self.head_widget = QWidget() self.head_layout = QGridLayout() self.head_widget.setLayout(self.head_layout) self.load_model_ico( 0, self.num) if self.num < self.column else self.load_model_ico( 0, self.column) self.up_layout.addWidget(self.head_widget, 0, 0, 0, 0) # 创建中部(middle) self.middle_widget = QWidget() self.middle_layout = QGridLayout() self.middle_widget.setLayout(self.middle_layout) for i in range(self.row): self.middle_icon = QLabel(chr(0xf002) + f'目录_{i}:') self.middle_icon.setFont(qtawesome.font('fa', 12)) self.middle_input = QLineEdit() # self.middle_input.setPlaceholderText("请选择文件...") self.middle_input.setObjectName(f'middle_input_{i}') self.middle_btn = QPushButton( qtawesome.icon('fa.film', color='green'), "选择文件") self.middle_btn.setObjectName(f'middle_btn_{i}') self.middle_btn.clicked.connect(self.open_dir) self.middle_layout.addWidget(self.middle_icon, i, 0, 1, 1) self.middle_layout.addWidget(self.middle_input, i, 1, 1, self.row - 1) self.middle_layout.addWidget(self.middle_btn, i, self.row, 1, 1) self.mid_layout.addWidget(self.middle_widget, 0, 0, 1, 1) # 创建尾部 self.tail_widget = QWidget() self.tail_layout = QGridLayout() self.tail_widget.setLayout(self.tail_layout) self.tail_btn = QPushButton( qtawesome.icon('fa.download', color='green'), "运行") self.tail_layout.addWidget(self.tail_btn, 0, 9, 1, 1) self.down_layout.addWidget(self.tail_widget, 0, 0, 0, 0) self.set_style() self.main_layout.setSpacing(0)
def __init__(self, icon): Button.__init__(self, "playback") self.setText(icon) self.setFont(qta.font('fa', 12))
def __init__(self): super(AwesomeExample, self).__init__() # Get icons by name. fa_icon = qta.icon('fa.flag') fa_button = QtWidgets.QPushButton(fa_icon, 'Font Awesome!') asl_icon = qta.icon('ei.asl') elusive_button = QtWidgets.QPushButton(asl_icon, 'Elusive Icons!') # Styling styling_icon = qta.icon('fa.music', active='fa.legal', color='blue', color_active='orange') music_button = QtWidgets.QPushButton(styling_icon, 'Styling') # Toggle toggle_icon = qta.icon('fa.home', selected='fa.legal', color_off='black', color_off_active='blue', color_on='orange', color_on_active='yellow') toggle_button = QtWidgets.QPushButton(toggle_icon, 'Toggle') toggle_button.setCheckable(True) # Render a label with this font label = QtWidgets.QLabel(unichr(0xf19c) + ' ' + 'Label') label.setFont(qta.font('fa', 16)) # Stack icons camera_ban = qta.icon('fa.camera', 'fa.ban', options=[{ 'scale_factor': 0.5, 'active': 'fa.legal' }, { 'color': 'red', 'opacity': 0.7 }]) stack_button = QtWidgets.QPushButton(camera_ban, 'Stack') stack_button.setIconSize(QtCore.QSize(32, 32)) # Spin icons spin_button = QtWidgets.QPushButton(' Spinning icon') spin_icon = qta.icon('fa.spinner', color='red', animation=qta.Spin(spin_button)) spin_button.setIcon(spin_icon) # Pulse icons pulse_button = QtWidgets.QPushButton(' Pulsing icon') pulse_icon = qta.icon('fa.spinner', color='green', animation=qta.Pulse(pulse_button)) pulse_button.setIcon(pulse_icon) # Stacked spin icons stack_spin_button = QtWidgets.QPushButton('Stack spin') options = [{ 'scale_factor': 0.4, 'animation': qta.Spin(stack_spin_button) }, { 'color': 'blue' }] stack_spin_icon = qta.icon('ei.asl', 'fa.square-o', options=options) stack_spin_button.setIcon(stack_spin_icon) stack_spin_button.setIconSize(QtCore.QSize(32, 32)) # Stack and offset icons saveall = qta.icon('fa.save', 'fa.save', options=[{ 'scale_factor': 0.8, 'offset': (0.2, 0.2), 'color': 'gray' }, { 'scale_factor': 0.8 }]) saveall_button = QtWidgets.QPushButton(saveall, 'Stack, offset') # Layout vbox = QtWidgets.QVBoxLayout() widgets = [ fa_button, elusive_button, music_button, toggle_button, stack_button, saveall_button, spin_button, pulse_button, stack_spin_button, label ] for w in widgets: vbox.addWidget(w) self.setLayout(vbox) self.setWindowTitle('Awesome') self.show()
def init_ui(self): self.setFixedSize(960, 700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.left_close = QtWidgets.QPushButton("", self) # 关闭按钮 self.left_visit = QtWidgets.QPushButton("", self) # 最大化按钮 self.left_mini = QtWidgets.QPushButton("", self) # 最小化按钮 self.left_close.setToolTip('关闭') self.left_visit.setToolTip('最大化') self.left_visit.clicked.connect( self.pushButton_show_max_normal) # 点击按钮之后最大化窗口 self.left_mini.setToolTip('最小化') self.left_close.clicked.connect(self.close) # 点击按钮之后关闭窗口 self.left_mini.clicked.connect(self.showMinimized) # 点击按钮之后最小化窗口 self.left_label_1 = QtWidgets.QPushButton("配音助手") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("联系与帮助") self.left_label_2.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton( qtawesome.icon('fa.cog', color='white'), "语音合成") self.left_button_1.setObjectName('left_button') self.left_button_1.clicked.connect(self.push_button_compose_clicked) self.left_button_2 = QtWidgets.QPushButton( qtawesome.icon('fa.hand-o-right', color='white'), "使用说明") self.left_button_2.setObjectName('left_button') self.left_button_2.clicked.connect(self.push_button_shuoming_clicked) self.left_button_3 = QtWidgets.QPushButton( qtawesome.icon('fa.download', color='white'), "下载管理") self.left_button_3.setObjectName('left_button') self.left_button_3.clicked.connect(self.push_button_xiazai_clicked) self.left_button_4 = QtWidgets.QPushButton( qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_4.setObjectName('left_button') self.left_button_4.clicked.connect(self.push_button_fankui_clicked) self.left_button_5 = QtWidgets.QPushButton( qtawesome.icon('fa.star', color='white'), "关于我们") self.left_button_5.setObjectName('left_button') self.left_button_5.clicked.connect(self.push_button_guanyu_clicked) self.left_button_6 = QtWidgets.QPushButton( qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_6.setObjectName('left_button') self.left_button_6.clicked.connect(self.push_button_wenti_clicked) self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_2, 3, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 4, 0, 1, 3) self.left_layout.addWidget(self.left_label_2, 5, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_button_6, 8, 0, 1, 3) self.right_arg_label = QtWidgets.QLabel("参数设置") self.right_arg_label.setObjectName('right_lable') self.right_layout.addWidget(self.right_arg_label, 0, 0, 1, 9) # 第一行appkey和token self.right_arg1_widget = QtWidgets.QWidget() # 第一行参数部件 self.right_arg1_layout = QtWidgets.QGridLayout() # 第一行参数网格布局 self.right_arg1_widget.setLayout(self.right_arg1_layout) self.right_arg11_widget = QtWidgets.QWidget() # 第一行第一个参数部件 self.right_arg11_layout = QtWidgets.QGridLayout() # 第一行第一个参数网格布局 self.right_arg11_widget.setLayout(self.right_arg11_layout) self.right_arg12_widget = QtWidgets.QWidget() # 第一行第二个参数部件 self.right_arg12_layout = QtWidgets.QGridLayout() # 第一行第二个参数网格布局 self.right_arg12_widget.setLayout(self.right_arg12_layout) self.appkey_icon = QtWidgets.QLabel('appkey') self.appkey_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_appkey_input = QtWidgets.QLineEdit() self.right_bar_widget_appkey_input.setPlaceholderText("输入appkey") self.token_icon = QtWidgets.QLabel('token') self.token_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_token_input = QtWidgets.QLineEdit() self.right_bar_widget_token_input.setPlaceholderText("输入token") self.right_arg11_layout.addWidget(self.appkey_icon, 1, 0, 1, 1) self.right_arg11_layout.addWidget(self.right_bar_widget_appkey_input, 1, 1, 1, 3) self.right_arg12_layout.addWidget(self.token_icon, 1, 4, 1, 1) self.right_arg12_layout.addWidget(self.right_bar_widget_token_input, 1, 5, 1, 3) self.right_arg1_layout.addWidget(self.right_arg11_widget, 1, 0, 1, 4) self.right_arg1_layout.addWidget(self.right_arg12_widget, 1, 4, 1, 4) self.right_layout.addWidget(self.right_arg1_widget, 1, 0, 1, 6) # 第二行输入文本text self.right_arg2_widget = QtWidgets.QWidget() # 第二行参数部件 self.right_arg2_layout = QtWidgets.QGridLayout() # 第二行参数网格布局 self.right_arg2_widget.setLayout(self.right_arg2_layout) self.text_icon = QtWidgets.QLabel('输入文本') self.text_icon.setFont(qtawesome.font('fa', 14)) self.right_bar_widget_text_input = QtWidgets.QTextEdit() self.right_bar_widget_text_input.setPlaceholderText("输入格式请看“使用说明”") self.right_arg2_layout.addWidget(self.text_icon, 2, 0, 1, 1) self.right_arg2_layout.addWidget(self.right_bar_widget_text_input, 2, 1, 1, 8) self.right_layout.addWidget(self.right_arg2_widget, 2, 0, 1, 9) # 第三行speech_rate和volume self.right_arg3_widget = QtWidgets.QWidget() self.right_arg3_layout = QtWidgets.QGridLayout() self.right_arg3_widget.setLayout(self.right_arg3_layout) self.right_arg31_widget = QtWidgets.QWidget() self.right_arg31_layout = QtWidgets.QGridLayout() self.right_arg31_widget.setLayout(self.right_arg31_layout) self.right_arg32_widget = QtWidgets.QWidget() self.right_arg32_layout = QtWidgets.QGridLayout() self.right_arg32_widget.setLayout(self.right_arg32_layout) self.right_arg33_widget = QtWidgets.QWidget() self.right_arg33_layout = QtWidgets.QGridLayout() self.right_arg33_widget.setLayout(self.right_arg33_layout) self.speech_rate_icon = QtWidgets.QLabel('语音速率') self.speech_rate_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_speech_rate_input = QtWidgets.QLineEdit() self.right_bar_widget_speech_rate_input.setPlaceholderText( "-500-500(-100中)") self.right_bar_widget_speech_rate_input.setText('-100') self.format_icon = QtWidgets.QLabel('音频格式') self.format_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_format_input = QtWidgets.QComboBox(self) self.right_bar_widget_format_input.addItems(['mp3', 'wav', 'pcm']) self.right_bar_widget_format_input.currentIndexChanged[str].connect( self.print_value) # 条目发生改变,发射信号,传递条目内容 # self.right_bar_widget_format_input.currentIndexChanged[int].connect(self.print_value) # 条目发生改变,发射信号,传递条目索引 self.volume_icon = QtWidgets.QLabel(' 音量') self.volume_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_volume_input = QtWidgets.QLineEdit() self.right_bar_widget_volume_input.setPlaceholderText("0-100(建议100)") self.right_bar_widget_volume_input.setText('100') self.right_arg31_layout.addWidget(self.speech_rate_icon, 3, 0, 1, 1) self.right_arg31_layout.addWidget( self.right_bar_widget_speech_rate_input, 3, 1, 1, 2) self.right_arg32_layout.addWidget(self.format_icon, 3, 3, 1, 1) self.right_arg32_layout.addWidget(self.right_bar_widget_format_input, 3, 4, 1, 2) self.right_arg33_layout.addWidget(self.volume_icon, 3, 6, 1, 1) self.right_arg33_layout.addWidget(self.right_bar_widget_volume_input, 3, 7, 1, 3) self.right_arg3_layout.addWidget(self.right_arg31_widget, 3, 0, 1, 3) self.right_arg3_layout.addWidget(self.right_arg32_widget, 3, 3, 1, 3) self.right_arg3_layout.addWidget(self.right_arg33_widget, 3, 6, 1, 3) self.right_layout.addWidget(self.right_arg3_widget, 3, 0, 1, 9) # 第四行voice和audio self.right_arg4_widget = QtWidgets.QWidget() self.right_arg4_layout = QtWidgets.QGridLayout() self.right_arg4_widget.setLayout(self.right_arg4_layout) self.right_arg41_widget = QtWidgets.QWidget() self.right_arg41_layout = QtWidgets.QGridLayout() self.right_arg41_widget.setLayout(self.right_arg41_layout) self.right_arg42_widget = QtWidgets.QWidget() self.right_arg42_layout = QtWidgets.QGridLayout() self.right_arg42_widget.setLayout(self.right_arg42_layout) self.voice_icon = QtWidgets.QLabel('音色') self.voice_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_voice_input = QtWidgets.QComboBox(self) self.right_bar_widget_voice_input.addItems([ '小云', '小刚', '若兮', '思琪', '思佳', '思诚', '艾夏', '艾琪', '艾佳', '艾诚', '艾达', '宁儿', '瑞琳', '思悦', '艾雅', '艾美', '艾雨', '艾悦', '艾婧', '小美', '艾娜', '伊娜', '思婧', '思彤', '小北', '艾彤', '艾薇', '艾宝', '姗姗', '小玥', 'Lydia', '艾硕', '青青', '翠姐', '小泽', '艾媛(商用)', '艾颖(商用)', '艾祥(商用)', '艾墨(商用)', '艾晔(商用)', '艾婷(商用)', '艾凡(商用)' ]) self.test_voice_button = QtWidgets.QPushButton('配音试听') self.test_voice_button.setFont(qtawesome.font('fa', 16)) self.test_voice_button.clicked.connect(self.open_test_voice_url) self.compose_voice_button = QtWidgets.QPushButton('音频合成') self.compose_voice_button.setFont(qtawesome.font('fa', 16)) self.compose_voice_button.clicked.connect(self.start_compose) self.right_bar_widget_voice_input.currentIndexChanged[str].connect( self.print_value) # 条目发生改变,发射信号,传递条目内容 # self.right_bar_widget_voice_input.currentIndexChanged[int].connect(self.print_value) # 条目发生改变,发射信号,传递条目索引 self.right_arg41_layout.addWidget(self.voice_icon, 4, 0, 1, 1) self.right_arg41_layout.addWidget(self.right_bar_widget_voice_input, 4, 1, 1, 2) self.right_arg42_layout.addWidget(self.test_voice_button, 4, 3, 1, 2) self.right_arg42_layout.addWidget(self.compose_voice_button, 4, 5, 1, 2) self.right_arg4_layout.addWidget(self.right_arg41_widget, 4, 0, 1, 3) self.right_arg4_layout.addWidget(self.right_arg42_widget, 4, 3, 1, 9) self.right_layout.addWidget(self.right_arg4_widget, 4, 0, 1, 9) self.left_close.setFixedSize(15, 15) # 设置关闭按钮的大小 self.left_visit.setFixedSize(15, 15) # 设置按钮大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 # 说明 self.right_widget_shuoming = QtWidgets.QWidget() # 创建右侧部件 self.right_widget_shuoming.setObjectName('right_widget_shuoming') self.right_layout_shuoming = QtWidgets.QGridLayout() self.right_widget_shuoming.setLayout( self.right_layout_shuoming) # 设置右侧部件布局为网格 self.right_widget_shuoming.setVisible(False) self.main_layout.addWidget(self.right_widget_shuoming, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.shuoming_text = QtWidgets.QLabel( '1、打开网址:<a href="https://zhuanlan.zhihu.com/p/123930042" style="color:blue">https://zhuanlan.zhihu.com/p/123930042</a><br>' '2、按照文章中提示注册登录阿里云,获得智能语音交互的appkey和token(会过期)<br>' '3、在语音合成中,输入相应的参数,即可进行语音合成,进行配音<br>' '4、输入文本中目前支持中文进行配音,且必须有句号等标点符号,<br> 本程序利用句号“。”才进行分割,所以请按规范输入文本<br>' '5、音色选择可以在点击配音试听,到阿里云官网选择你需要的配音音色<br>' '6、语音合成的速度:300字符以内(10秒),800字符(25秒左右),请耐心等待<br>' '7、免费音色当前语音合成并发数为2(免费版最大并发数),普通使用者足够<br>' '8、合成音频在当前目录audioFiles中,文件名称为"日期.mp3"<br>' '9、根据字符长度讲每段字符数限制在300内进行合成,若有800字,则可能生成3个音频文件<br>' '9、目录下会生成日志文件:“日志.log”<br>' '10、目录下生成音频合成信息文件:“voice_data.json”,记录上次合成信息<br>' '11、商用音色(已备注)请查看更新文章,请开通后使用,未开通则不能使用,<br>文学类音色为长文本语音合成特有音色,且为商用,使用须向阿里云缴费!' ) self.shuoming_text.setObjectName('shuoming_text_lable') self.shuoming_text.setTextInteractionFlags(Qt.TextBrowserInteraction) self.shuoming_text.setOpenExternalLinks(True) self.right_layout_shuoming.addWidget(self.shuoming_text, 0, 0, 12, 10) self.right_widget_xiazai = QtWidgets.QWidget() # 创建右侧部件 self.right_widget_xiazai.setObjectName('right_widget_xiazai') self.right_layout_xiazai = QtWidgets.QGridLayout() self.right_widget_xiazai.setLayout( self.right_layout_xiazai) # 设置右侧部件布局为网格 self.right_widget_xiazai.setVisible(False) self.main_layout.addWidget(self.right_widget_xiazai, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.xiazai_button = QtWidgets.QPushButton('打开下载文件夹') self.xiazai_button.setFont(qtawesome.font('fa', 16)) self.xiazai_button.clicked.connect(self.open_xaizai_file) self.right_layout_xiazai.addWidget(self.xiazai_button, 0, 0, 12, 10) self.right_widget_fankui = QtWidgets.QWidget() # 创建右侧部件 self.right_widget_fankui.setObjectName('right_widget_fankui') self.right_layout_fankui = QtWidgets.QGridLayout() self.right_widget_fankui.setLayout( self.right_layout_fankui) # 设置右侧部件布局为网格 self.right_widget_fankui.setVisible(False) self.main_layout.addWidget(self.right_widget_fankui, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.fankui_text = QtWidgets.QLabel( '1、发送邮件至 : [email protected] <br>' + '2、发送邮件至 : [email protected]<br>' + '3、知乎 @NH4L私信 : <a href="https://www.zhihu.com/people/NH4L/posts" style="color:blue">https://www.zhihu.com/people/NH4L</a><br>' + '4、CSDN @NH4L博客私信 : <a href="https://blog.csdn.net/LeeGe666" style="color:blue">https://blog.csdn.net/LeeGe666</a><br>' ) self.fankui_text.setObjectName('fankui_text_lable') self.fankui_text.setTextInteractionFlags(Qt.TextBrowserInteraction) self.fankui_text.setOpenExternalLinks(True) self.right_layout_fankui.addWidget(self.fankui_text, 0, 0, 12, 10) self.right_widget_guanyu = QtWidgets.QWidget() # 创建右侧部件 self.right_widget_guanyu.setObjectName('right_widget_guanyu') self.right_layout_guanyu = QtWidgets.QGridLayout() self.right_widget_guanyu.setLayout( self.right_layout_guanyu) # 设置右侧部件布局为网格 self.right_widget_guanyu.setVisible(False) self.main_layout.addWidget(self.right_widget_guanyu, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.guanyu_text = QtWidgets.QLabel( '1、本人是一位大学生, 计算机科学与技术专业,<br> 对软件开发,机器学习,大数据有较大兴趣;<br>' '2、如需和我交流 +qq:2283373978<br>' ' +微信:nh4lan<br>' '3、本软件调用阿里云免费语音合成接口,利用阿里云的API薅羊毛,<br> 不读取用户任何信息,请放心使用<br>' '4、本软件完全开源 github @NH4L <a href="https://github.com/NH4L/voiceAssistant" style="color:blue">https://github.com/NH4L/voiceAssistant</a> <br>' '5、我的CSDN博客 @NH4L <a href="https://blog.csdn.net/LeeGe666" style="color:blue">https://blog.csdn.net/LeeGe666</a> <br>' ' @Copyright NH4L All Rights Reserved') self.guanyu_text.setObjectName('guanyu_text_lable') self.guanyu_text.setTextInteractionFlags(Qt.TextBrowserInteraction) self.guanyu_text.setOpenExternalLinks(True) self.right_layout_guanyu.addWidget(self.guanyu_text, 0, 0, 12, 10) self.right_widget_wenti = QtWidgets.QWidget() # 创建右侧部件 self.right_widget_wenti.setObjectName('right_widget_wenti') self.right_layout_wenti = QtWidgets.QGridLayout() self.right_widget_wenti.setLayout( self.right_layout_wenti) # 设置右侧部件布局为网格 self.right_widget_wenti.setVisible(False) self.main_layout.addWidget(self.right_widget_wenti, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.wenti_text = QtWidgets.QLabel( '1、有问题联系 +qq:2283373978<br>' ' +微信:nh4lan<br>' '2、知乎私信 @NH4L <a href="https://www.zhihu.com/people/NH4L/posts" style="color:blue">https://www.zhihu.com/people/NH4L</a> <br>' '3、CSDN博客私信 @NH4L <a href="https://blog.csdn.net/LeeGe666" style="color:blue">https://blog.csdn.net/LeeGe666</a> <br>' ) self.wenti_text.setObjectName('wenti_text_lable') self.wenti_text.setTextInteractionFlags(Qt.TextBrowserInteraction) self.wenti_text.setOpenExternalLinks(True) self.right_layout_wenti.addWidget(self.wenti_text, 0, 0, 12, 10) self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.get_last_voice_info() self.left_close.setStyleSheet( '''QPushButton{background:#F76677 url(./assets/exit.png) no-repeat;border-radius:5px;}QPushButton:hover{background:red url(./assets/exit.png);}''' ) self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674 url(./assets/max.png) no-repeat;border-radius:5px;}QPushButton:hover{background:yellow url(./assets/max.png);}''' ) self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D url(./assets/min.png) no-repeat;border-radius:5px;}QPushButton:hover{background:green url(./assets/min.png);}''' ) self.left_widget.setStyleSheet(''' QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid white; font-size:18px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} ''') self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_widget_shuoming.setStyleSheet(''' QWidget#right_widget_shuoming{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#shuoming_text_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_widget_fankui.setStyleSheet(''' QWidget#right_widget_fankui{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#fankui_text_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_widget_guanyu.setStyleSheet(''' QWidget#right_widget_guanyu{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#guanyu_text_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_widget_wenti.setStyleSheet(''' QWidget#right_widget_wenti{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#wenti_text_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_widget_xiazai.setStyleSheet(''' QWidget#right_widget_xiazai{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } ''') self.right_bar_widget_appkey_input.setStyleSheet('''QLineEdit{ border:1px solid gray; width:75px; border-radius:10px; padding:2px 4px; }''') self.right_bar_widget_token_input.setStyleSheet('''QLineEdit{ border:1px solid gray; width:75px; border-radius:10px; padding:2px 4px; }''') self.right_bar_widget_speech_rate_input.setStyleSheet('''QLineEdit{ border:1px solid gray; width:75px; border-radius:10px; padding:2px 4px; }''') self.right_bar_widget_volume_input.setStyleSheet('''QLineEdit{ border:1px solid gray; width:75px; border-radius:10px; padding:2px 4px; }''') self.test_voice_button.setStyleSheet('''QPushButton{ background:#1C86EE;border-radius:6px; min-height: 25px; min-width: 100px; max-width: 100px; max-height: 25px; }QPushButton:hover{background:#436EEE;}''') self.xiazai_button.setStyleSheet('''QPushButton{ background:#1C86EE;border-radius:6px; min-height: 50px; min-width: 400px; max-width: 400px; max-height: 50px; }QPushButton:hover{background:#436EEE;}''') self.compose_voice_button.setStyleSheet('''QPushButton{ background:#1C86EE;border-radius:6px; min-height: 25px; min-width: 100px; max-width: 100px; max-height: 25px; font-weight:bold; }QPushButton:hover{background:#436EEE;}''') self.right_bar_widget_text_input.setStyleSheet('''QTextEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; }''') self.right_bar_widget_format_input.setStyleSheet('''QComboBox{ border:1px solid gray; width:75px; border-radius:10px; padding:2px 4px; }''') self.right_bar_widget_voice_input.setStyleSheet('''QComboBox{ border:1px solid gray; width:75px; border-radius:10px; padding:2px 4px; }''') self.setWindowOpacity(0.9) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 self.main_widget.setStyleSheet(''' QWidget#left_widget{ background:gray; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } ''') self.main_layout.setSpacing(0)
def init_ui(self): self.setFixedSize(960, 700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_label_1 = QtWidgets.QPushButton("每日推荐") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("我的音乐") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("联系与帮助") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton( qtawesome.icon('fa.music', color='white'), "华语流行") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton( qtawesome.icon('fa.sellsy', color='white'), "在线FM") self.left_button_2.setObjectName('left_button') self.left_button_3 = QtWidgets.QPushButton( qtawesome.icon('fa.film', color='white'), "热门MV") self.left_button_3.setObjectName('left_button') self.left_button_4 = QtWidgets.QPushButton( qtawesome.icon('fa.home', color='white'), "本地音乐") self.left_button_4.setObjectName('left_button') self.left_button_5 = QtWidgets.QPushButton( qtawesome.icon('fa.download', color='white'), "下载管理") self.left_button_5.setObjectName('left_button') self.left_button_6 = QtWidgets.QPushButton( qtawesome.icon('fa.heart', color='white'), "我的收藏") self.left_button_6.setObjectName('left_button') self.left_button_7 = QtWidgets.QPushButton( qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_8 = QtWidgets.QPushButton( qtawesome.icon('fa.star', color='white'), "关注我们") self.left_button_8.setObjectName('left_button') self.left_button_9 = QtWidgets.QPushButton( qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_9.setObjectName('left_button') self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_2, 3, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 4, 0, 1, 3) self.left_layout.addWidget(self.left_label_2, 5, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_button_6, 8, 0, 1, 3) self.left_layout.addWidget(self.left_label_3, 9, 0, 1, 3) self.left_layout.addWidget(self.left_button_7, 10, 0, 1, 3) self.left_layout.addWidget(self.left_button_8, 11, 0, 1, 3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf005) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText( "输入歌手、歌曲或用户,回车进行搜索") self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9)
def initUI(self): self.setWindowTitle("数据库列表") self.resize(1000, 800) self.setObjectName('win') self.setWindowIcon(QtGui.QIcon('images/tubiao.ico')) self.db = pymysql.connect( host='127.0.0.1', port=3306, user='******', password='******', db='videos', charset='utf8', ) self.cur = self.db.cursor() self.cur.execute("select name,url,mark,action from video") self.data = self.cur.fetchall() self.col_lst = [tup[0] for tup in self.cur.description] row = len(self.data) vol = len(self.data[0]) self.MyTable = QTableWidget(row, vol) font = QtGui.QFont('微软雅黑', 10) self.MyTable.horizontalHeader().setFont(font) self.MyTable.setHorizontalHeaderLabels(self.col_lst) self.MyTable.verticalHeader().setVisible(False) self.MyTable.setFrameShape(QFrame.NoFrame) self.MyTable.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.MyTable.horizontalHeader().setStyleSheet( 'QHeaderView::section{background:skyblue}') for i in range(row): for j in range(vol): temp_data = self.data[i][j] data1 = QTableWidgetItem(str(temp_data)) # 转换后可插入表格 self.MyTable.setItem(i, j, data1) #编辑按钮 self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.qle = QLineEdit() self.qle.setPlaceholderText("输入视频名称、动作数字标签或动作名称,QUERY键进行搜索") buttonBox = QDialogButtonBox() #增删查改四个按钮 self.addButton = buttonBox.addButton("&ADD", QDialogButtonBox.ActionRole) self.okButton = buttonBox.addButton("&OK", QDialogButtonBox.ActionRole) self.deleteButton = buttonBox.addButton("&DELETE", QDialogButtonBox.ActionRole) self.inquireButton = buttonBox.addButton("&QUERY", QDialogButtonBox.ActionRole) #按钮的颜色优化 self.addButton.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{ background:red;}''') self.okButton.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{ background:yellow;}''') self.deleteButton.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{ background:green;}''') self.inquireButton.setStyleSheet( '''QPushButton{background:#CC6699;border-radius:5px;}QPushButton:hover{ background:blue;}''') self.qle.setStyleSheet('''QLineEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; }''') #设置按钮内字体样式 self.addButton.setFont(font) self.okButton.setFont(font) self.deleteButton.setFont(font) self.inquireButton.setFont(font) #网格布局 self.net_widget = QtWidgets.QWidget() self.net_layout = QtWidgets.QGridLayout() #搜索部件的布局 self.net_widget.setLayout(self.net_layout) self.net_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.net_layout.addWidget(self.qle, 0, 1, 1, 8) #垂直布局 layout = QVBoxLayout() layout.addWidget(self.net_widget) #layout.addWidget(self.search_icon) #layout.addWidget(self.qle) layout.addWidget(buttonBox) layout.addWidget(self.MyTable) self.setLayout(layout) #qss进行布局优化 self.setStyleSheet("#win{background-color: white}") #设置背景为白色 self.setWindowOpacity(0.9) #设置透明度 #self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 layout.setSpacing(0) self.setStyleSheet(''' #win{ background:white; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } ''')
def __init__(self): super().__init__() # Label for supported fonts supported_fonts_label = QtWidgets.QLabel('Supported fonts (prefix)') supported_fonts_label.setAlignment(QtCore.Qt.AlignCenter) # Get FontAwesome 5.x icons by name in various styles by name fa5_icon = qta.icon('fa5.flag') fa5_button = QtWidgets.QPushButton(fa5_icon, 'Font Awesome regular (fa5)') fa5s_icon = qta.icon('fa5s.flag') fa5s_button = QtWidgets.QPushButton(fa5s_icon, 'Font Awesome solid (fa5s)') fa5b_icon = qta.icon('fa5b.github') fa5b_button = QtWidgets.QPushButton(fa5b_icon, 'Font Awesome brands (fa5b)') # Get Elusive icons by name asl_icon = qta.icon('ei.asl') elusive_button = QtWidgets.QPushButton(asl_icon, 'Elusive Icons (ei)') # Get Material Design icons by name apn_icon = qta.icon('mdi6.access-point-network') mdi6_button = QtWidgets.QPushButton(apn_icon, 'Material Design (mdi, mdi6)') # Get Phosphor by name mic_icon = qta.icon('ph.microphone-fill') ph_button = QtWidgets.QPushButton(mic_icon, 'Phosphor Icons (ph)') # Get Remix Icon by name truck_icon = qta.icon('ri.truck-fill') ri_button = QtWidgets.QPushButton(truck_icon, 'Remix Icons (ri)') # Get Microsoft's Codicons by name squirrel_icon = qta.icon('msc.squirrel') msc_button = QtWidgets.QPushButton(squirrel_icon, 'Codicons (msc)') # Label for style options and animations styles_label = QtWidgets.QLabel('Styles') styles_label.setAlignment(QtCore.Qt.AlignCenter) # Rotated rot_icon = qta.icon('mdi.access-point-network', rotated=45) rot_button = QtWidgets.QPushButton(rot_icon, 'Rotated Icons') # Horizontal flip hflip_icon = qta.icon('mdi.account-alert', hflip=True) hflip_button = QtWidgets.QPushButton(hflip_icon, 'Horizontally Flipped Icons') # Vertical flip vflip_icon = qta.icon('mdi.account-alert', vflip=True) vflip_button = QtWidgets.QPushButton(vflip_icon, 'Vertically Flipped Icons') # Styling styling_icon = qta.icon('fa5s.music', active='fa5s.balance-scale', color='blue', color_active='orange') music_button = QtWidgets.QPushButton(styling_icon, 'Changing colors') # Setting an alpha of 165 to the color of this icon. Alpha must be a number # between 0 and 255. icon_with_alpha = qta.icon('mdi.heart', color=('red', 120)) heart_button = QtWidgets.QPushButton(icon_with_alpha, 'Setting alpha') # Toggle toggle_icon = qta.icon('fa5s.home', selected='fa5s.balance-scale', color_off='black', color_off_active='blue', color_on='orange', color_on_active='yellow') toggle_button = QtWidgets.QPushButton(toggle_icon, 'Toggle') toggle_button.setCheckable(True) iconwidget = qta.IconWidget() spin_icon = qta.icon('mdi.loading', color='red', animation=qta.Spin(iconwidget)) iconwidget.setIcon(spin_icon) iconwidget.setIconSize(QtCore.QSize(32, 32)) iconwidgetholder = QtWidgets.QWidget() lo = QtWidgets.QHBoxLayout() lo.addWidget(iconwidget) lo.addWidget(QtWidgets.QLabel('IconWidget')) iconwidgetholder.setLayout(lo) iconwidget2 = qta.IconWidget('mdi.web', color='blue') # Stack icons camera_ban = qta.icon('fa5s.camera', 'fa5s.ban', options=[{ 'scale_factor': 0.5, 'active': 'fa5s.balance-scale' }, { 'color': 'red', 'opacity': 0.7 }]) stack_button = QtWidgets.QPushButton(camera_ban, 'Stack') stack_button.setIconSize(QtCore.QSize(32, 32)) # Stack and offset icons saveall = qta.icon('fa5.save', 'fa5.save', options=[{ 'scale_factor': 0.8, 'offset': (0.2, 0.2), 'color': 'gray' }, { 'scale_factor': 0.8 }]) saveall_button = QtWidgets.QPushButton(saveall, 'Stack, offset') # Spin icons spin_button = QtWidgets.QPushButton(' Spinning icon') spin_icon = qta.icon('fa5s.spinner', color='red', animation=qta.Spin(spin_button)) spin_button.setIcon(spin_icon) # Pulse icons pulse_button = QtWidgets.QPushButton(' Pulsing icon') pulse_icon = qta.icon('fa5s.spinner', color='green', animation=qta.Pulse(pulse_button)) pulse_button.setIcon(pulse_icon) # Stacked spin icons stack_spin_button = QtWidgets.QPushButton('Stack spin') options = [{ 'scale_factor': 0.4, 'animation': qta.Spin(stack_spin_button) }, { 'color': 'blue' }] stack_spin_icon = qta.icon('ei.asl', 'fa5.square', options=options) stack_spin_button.setIcon(stack_spin_icon) stack_spin_button.setIconSize(QtCore.QSize(32, 32)) # Render a label with this font label = QtWidgets.QLabel(chr(0xf19c) + ' ' + 'Label') label.setFont(qta.font('fa', 16)) # Layout grid = QtWidgets.QGridLayout() fonts_widgets = [ supported_fonts_label, fa5_button, fa5s_button, fa5b_button, elusive_button, mdi6_button, ph_button, ri_button, msc_button, ] styled_widgets = [ styles_label, music_button, heart_button, rot_button, hflip_button, vflip_button, toggle_button ] animated_widgets = [ spin_button, pulse_button, stack_button, saveall_button, stack_spin_button, ] other_widgets = [label, iconwidgetholder, iconwidget2] for idx, w in enumerate(fonts_widgets): grid.addWidget(w, idx, 0) for idx, w in enumerate(styled_widgets): grid.addWidget(w, idx, 1) for idx, w in enumerate(animated_widgets): grid.addWidget(w, idx + len(styled_widgets), 1) for idx, w in enumerate(other_widgets): grid.addWidget(w, idx + len(styled_widgets) + len(animated_widgets), 1) self.setLayout(grid) self.setWindowTitle('Awesome') self.setMinimumWidth(520) self.show()
def init_ui(self): self.setFixedSize(1024, 600) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占12行2列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占12行10列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 # self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_close = QtWidgets.QPushButton(qtawesome.icon('fa.times', color='white'), "") # self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_visit = QtWidgets.QPushButton(qtawesome.icon('fa.gamepad', color='white'), "") # self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_mini = QtWidgets.QPushButton(qtawesome.icon('fa.film', color='white'), "") self.left_close.clicked.connect(self.close_window) # 关联 self.left_label_1 = QtWidgets.QPushButton("每日推荐") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("我的音乐") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("联系与帮助") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.music', color='white'), "华语流行") self.left_button_1.setObjectName('left_button') self.left_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.sellsy', color='white'), "在线FM") self.left_button_2.setObjectName('left_button') self.left_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.film', color='white'), "热门MV") self.left_button_3.setObjectName('left_button') self.left_button_4 = QtWidgets.QPushButton(qtawesome.icon('fa.home', color='white'), "本地音乐") self.left_button_4.setObjectName('left_button') self.left_button_5 = QtWidgets.QPushButton(qtawesome.icon('fa.download', color='white'), "下载管理") self.left_button_5.setObjectName('left_button') self.left_button_6 = QtWidgets.QPushButton(qtawesome.icon('fa.heart', color='white'), "我的收藏") self.left_button_6.setObjectName('left_button') self.left_button_7 = QtWidgets.QPushButton(qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_8 = QtWidgets.QPushButton(qtawesome.icon('fa.star', color='white'), "关注我们") self.left_button_8.setObjectName('left_button') self.left_button_9 = QtWidgets.QPushButton(qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_9.setObjectName('left_button') self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_2, 3, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 4, 0, 1, 3) self.left_layout.addWidget(self.left_label_2, 5, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_button_6, 8, 0, 1, 3) self.left_layout.addWidget(self.left_label_3, 9, 0, 1, 3) self.left_layout.addWidget(self.left_button_7, 10, 0, 1, 3) self.left_layout.addWidget(self.left_button_8, 11, 0, 1, 3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText("输入歌手、歌曲或用户,回车进行搜索") self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_recommend_label = QtWidgets.QLabel("今日推荐") self.right_recommend_label.setObjectName('right_lable') self.right_recommend_widget = QtWidgets.QWidget() # 推荐封面部件 self.right_recommend_layout = QtWidgets.QGridLayout() # 推荐封面网格布局 self.right_recommend_widget.setLayout(self.right_recommend_layout) self.recommend_button_1 = QtWidgets.QToolButton() self.recommend_button_1.setText("个性电台") # 设置按钮文本 self.recommend_button_1.setIcon(QtGui.QIcon('./r1.jpg')) # 设置按钮图标 self.recommend_button_1.setIconSize(QtCore.QSize(100, 100)) # 设置图标大小 self.recommend_button_1.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) # 设置按钮形式为上图下文 self.recommend_button_2 = QtWidgets.QToolButton() self.recommend_button_2.setText("跑步者") self.recommend_button_2.setIcon(QtGui.QIcon('./r2.jpg')) self.recommend_button_2.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_3 = QtWidgets.QToolButton() self.recommend_button_3.setText("睡前") self.recommend_button_3.setIcon(QtGui.QIcon('./r3.jpg')) self.recommend_button_3.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_4 = QtWidgets.QToolButton() self.recommend_button_4.setText("随心听") self.recommend_button_4.setIcon(QtGui.QIcon('./r4.jpg')) self.recommend_button_4.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.recommend_button_5 = QtWidgets.QToolButton() self.recommend_button_5.setText("经典日漫") self.recommend_button_5.setIcon(QtGui.QIcon('./01.jpg')) self.recommend_button_5.setIconSize(QtCore.QSize(100, 100)) self.recommend_button_5.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.right_recommend_layout.addWidget(self.recommend_button_1, 0, 0) self.right_recommend_layout.addWidget(self.recommend_button_2, 0, 1) self.right_recommend_layout.addWidget(self.recommend_button_3, 0, 2) self.right_recommend_layout.addWidget(self.recommend_button_4, 0, 3) self.right_recommend_layout.addWidget(self.recommend_button_5, 0, 4) self.right_layout.addWidget(self.right_recommend_label, 1, 0, 1, 9) self.right_layout.addWidget(self.right_recommend_widget, 2, 0, 2, 9) self.right_newsong_lable = QtWidgets.QLabel("最新歌曲") self.right_newsong_lable.setObjectName('right_lable') self.right_playlist_lable = QtWidgets.QLabel("热门歌单") self.right_playlist_lable.setObjectName('right_lable') self.right_newsong_widget = QtWidgets.QWidget() # 最新歌曲部件 self.right_newsong_layout = QtWidgets.QGridLayout() # 最新歌曲部件网格布局 self.right_newsong_widget.setLayout(self.right_newsong_layout) self.newsong_button_1 = QtWidgets.QPushButton( "Bohemian Rhapsody Queen Bohemian Rhapsody 05::54") self.newsong_button_2 = QtWidgets.QPushButton( "Dance Monkey Tones and I The Kids Are Coming 03::29") self.newsong_button_3 = QtWidgets.QPushButton( "Girls Like You Maroon 5 Red Pill Blues 03::55") self.newsong_button_4 = QtWidgets.QPushButton( "Cheap Thrills Sia Cheap Thrills 03::31") self.newsong_button_5 = QtWidgets.QPushButton( "Государственный гимн СССР 03::29") self.newsong_button_6 = QtWidgets.QPushButton("リブート ミワ reboot 04::02") self.right_newsong_layout.addWidget(self.newsong_button_1, 0, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_2, 1, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_3, 2, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_4, 3, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_5, 4, 1, ) self.right_newsong_layout.addWidget(self.newsong_button_6, 5, 1, ) self.right_playlist_widget = QtWidgets.QWidget() # 播放歌单部件 self.right_playlist_layout = QtWidgets.QGridLayout() # 播放歌单网格布局 self.right_playlist_widget.setLayout(self.right_playlist_layout) self.playlist_button_1 = QtWidgets.QToolButton() self.playlist_button_1.setText("助眠白噪音:调整...") self.playlist_button_1.setIcon(QtGui.QIcon('./p1.jpg')) self.playlist_button_1.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_1.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_2 = QtWidgets.QToolButton() self.playlist_button_2.setText("当代古典乐:走进...") self.playlist_button_2.setIcon(QtGui.QIcon('./p2.jpg')) self.playlist_button_2.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_3 = QtWidgets.QToolButton() self.playlist_button_3.setText("沉静如海 : 被复古...") self.playlist_button_3.setIcon(QtGui.QIcon('./p3.jpg')) self.playlist_button_3.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.playlist_button_4 = QtWidgets.QToolButton() self.playlist_button_4.setText("歌慌必备 : 打破感...") self.playlist_button_4.setIcon(QtGui.QIcon('./p4.jpg')) self.playlist_button_4.setIconSize(QtCore.QSize(100, 100)) self.playlist_button_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon) self.right_playlist_layout.addWidget(self.playlist_button_1, 0, 0) self.right_playlist_layout.addWidget(self.playlist_button_2, 0, 1) self.right_playlist_layout.addWidget(self.playlist_button_3, 1, 0) self.right_playlist_layout.addWidget(self.playlist_button_4, 1, 1) self.right_layout.addWidget(self.right_newsong_lable, 4, 0, 1, 5) self.right_layout.addWidget(self.right_playlist_lable, 4, 5, 1, 4) self.right_layout.addWidget(self.right_newsong_widget, 5, 0, 1, 5) self.right_layout.addWidget(self.right_playlist_widget, 5, 5, 1, 4) self.right_process_bar = QtWidgets.QProgressBar() # 播放进度部件 self.right_process_bar.setValue(49) self.right_process_bar.setFixedHeight(3) # 设置进度条高度 self.right_process_bar.setTextVisible(False) # 不显示进度条文字 self.right_playconsole_widget = QtWidgets.QWidget() # 播放控制部件 self.right_playconsole_layout = QtWidgets.QGridLayout() # 播放控制部件网格布局层 self.right_playconsole_widget.setLayout(self.right_playconsole_layout) self.console_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.backward', color='#F76677'), "") self.console_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.forward', color='#F76677'), "") self.console_button_3 = QtWidgets.QPushButton(qtawesome.icon('fa.pause', color='#F76677', font=18), "") self.console_button_3.setIconSize(QtCore.QSize(30, 30)) self.right_playconsole_layout.addWidget(self.console_button_1, 0, 0) self.right_playconsole_layout.addWidget(self.console_button_2, 0, 2) self.right_playconsole_layout.addWidget(self.console_button_3, 0, 1) self.right_playconsole_layout.setAlignment(QtCore.Qt.AlignCenter) # 设置布局内部件居中显示 self.right_layout.addWidget(self.right_process_bar, 9, 0, 1, 9) self.right_layout.addWidget(self.right_playconsole_widget, 10, 0, 1, 9) self.left_close.setFixedSize(16, 16) # 设置关闭按钮的大小 self.left_visit.setFixedSize(16, 16) # 设置按钮大小 self.left_mini.setFixedSize(16, 16) # 设置最小化按钮大小 self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''') self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''') self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''') self.left_widget.setStyleSheet(''' QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid white; font-size:18px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} QWidget#left_widget{ background:gray; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } ''') self.right_bar_widget_search_input.setStyleSheet( '''QLineEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; }''') self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_recommend_widget.setStyleSheet( ''' QToolButton{border:none;} QToolButton:hover{border-bottom:2px solid #F76677;} ''') self.right_playlist_widget.setStyleSheet( ''' QToolButton{border:none;} QToolButton:hover{border-bottom:2px solid #F76677;} ''') self.right_newsong_widget.setStyleSheet(''' QPushButton{ border:none; color:gray; font-size:12px; height:40px; padding-left:5px; padding-right:10px; text-align:left; } QPushButton:hover{ color:black; border:1px solid #F3F3F5; border-radius:10px; background:LightGray; } ''') self.right_process_bar.setStyleSheet(''' QProgressBar::chunk { background-color: #F76677; } ''') self.right_playconsole_widget.setStyleSheet(''' QPushButton{ border:none; } ''') self.setWindowOpacity(0.9) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.setWindowFlags(QtCore.Qt.FramelessWindowHint) # 隐藏边框 self.main_layout.setSpacing(0)
def init_ui(self): self.setFixedSize(980, 610) self.main_widget = QWidget() # 创建窗口主部件 self.setWindowIcon(QIcon("/etc/v2rayL/images/logo.ico")) self.main_layout = QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.right_widget = QWidget() # 创建右上侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.right_down_widget = QWidget() # 创建右下侧部件 self.right_down_widget.setObjectName('right_down_widget') self.right_down_layout = QGridLayout() self.right_down_widget.setLayout(self.right_down_layout) # 设置右侧部件布局为网格 self.right_up_widget = QWidget() # 创建右上侧部件 self.right_up_widget.setObjectName('right_up_widget') self.right_up_layout = QGridLayout() self.right_up_widget.setLayout(self.right_up_layout) # 设置右侧部件布局为网格 self.right_down_widget = QWidget() # 创建右下侧部件 self.right_down_widget.setObjectName('right_down_widget') self.right_down_layout = QGridLayout() self.right_down_widget.setLayout(self.right_down_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 # self.main_layout.addWidget(self.right_up_widget, 0, 2, 2, 10) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.right_layout.addWidget(self.right_up_widget, 0, 0, 1, 9) self.right_layout.addWidget(self.right_down_widget, 1, 0, 8, 9) self.left_close = QPushButton("") # 关闭按钮 self.left_mini = QPushButton("") # 最小化按钮 self.left_connect_label = QPushButton("连接") self.left_connect_label.setObjectName('left_label') self.left_settings_label = QPushButton("设置") self.left_settings_label.setObjectName('left_label') self.left_help__label = QPushButton("帮助") self.left_help__label.setObjectName('left_label') self.left_button_1 = QPushButton(qtawesome.icon('fa.plug', color='black'), "可用连接") self.left_button_1.setObjectName('left_button') self.left_button_3 = QPushButton(qtawesome.icon('fa.tachometer', color='black'), "配置订阅") self.left_button_3.setObjectName('left_button') self.left_button_4 = QPushButton(qtawesome.icon('fa.info-circle', color='black'), "版本说明") self.left_button_4.setObjectName('left_button') self.left_button_5 = QPushButton(qtawesome.icon('fa.cog', color='black'), "系统设置") self.left_button_5.setObjectName('left_button') self.left_layout.addWidget(self.left_mini, 0, 1, 1, 3) self.left_layout.addWidget(self.left_close, 0, 2, 1, 2) self.left_layout.addWidget(self.left_connect_label, 2, 0, 1, 3) self.left_layout.addWidget(self.left_button_1, 3, 0, 1, 3) self.left_layout.addWidget(self.left_settings_label, 5, 0, 1, 3) # self.left_layout.addWidget(self.left_button_2, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_3, 6, 0, 1, 3) self.left_layout.addWidget(self.left_button_5, 7, 0, 1, 3) self.left_layout.addWidget(self.left_help__label, 9, 0, 1, 3) self.left_layout.addWidget(self.left_button_4, 10, 0, 1, 3) self.right_bar_widget = QWidget() # 右侧顶部logo部件 self.right_bar_layout = QGridLayout() # 右侧顶部logo网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.v2rayL_icon = QLabel() self.v2rayL_icon.setPixmap(QPixmap("/etc/v2rayL/images/logo.ico")) self.v2rayL_label = QLabel('V2rayL') self.v2rayL_label.setFont(qtawesome.font('fa', 24)) self.right_bar_layout.addWidget(self.v2rayL_icon, 0, 0, 1, 4, Qt.AlignRight) self.right_bar_layout.addWidget(self.v2rayL_label, 0, 4, 1, 5, Qt.AlignLeft) self.right_up_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) # self.right_layout.addWidget(self.right_one_widget, 1, 0, 8, 9) # 顶部三个按钮Qss self.left_close.setFixedSize(15, 15) # 设置关闭按钮的大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:7px;} QPushButton:hover{background:red;}''') self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:7px;} QPushButton:hover{background:green;}''') # 左部Qss self.left_widget.setStyleSheet(''' QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid white; font-size:18px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} QWidget#left_widget{ background:#708090; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } ''') # 右部Qss self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.right_up_widget.setStyleSheet(''' QWidget#right_up_widget{ border-bottom: 2px solid darkGray; } ''') self.setWindowOpacity(0.95) # 设置窗口透明度 self.setAttribute(Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.setWindowFlag(Qt.FramelessWindowHint) # 隐藏边框 self.main_layout.setSpacing(0) self.config_setting_widget = QWidget() self.system_setting_widget = QWidget() self.help_widget = QWidget() self.first_widget = QWidget() # 配置页面 self.config_setting_ui = Ui_Setting1_Form() self.config_setting_ui.setupUi(self.config_setting_widget) self.right_down_layout.addWidget(self.config_setting_widget) # 系统设置页面 self.system_setting_ui = Ui_SystemSettings() self.system_setting_ui.setupUi(self.system_setting_widget) self.right_down_layout.addWidget(self.system_setting_widget) # 版本说明页面 self.help_ui = Ui_HelpUi() self.help_ui.setupUi(self.help_widget) self.right_down_layout.addWidget(self.help_widget) # 主页连接页面 self.first_ui = Ui_FirstPage() self.first_ui.setupUi(self.first_widget) self.right_down_layout.addWidget(self.first_widget) # 分享配置窗口 self.share_ui = QDialog() self.share_child_ui = Ui_Share_Dialog() self.share_child_ui.setupUi(self.share_ui) # 二维码分享配置窗口 self.qr_ui = QDialog() self.qr_child_ui = Ui_Qr_Dialog() self.qr_child_ui.setupUi(self.qr_ui) self.current_page = self.first_widget self.config_setting_widget.hide() self.system_setting_widget.hide() self.help_widget.hide() self.left_mini.clicked.connect(self.on_left_mini_clicked) self.left_close.clicked.connect(self.on_left_close_clicked) self.left_button_1.clicked.connect(self.change_to_firstPage) self.left_button_3.clicked.connect(self.change_to_configSetting) self.left_button_4.clicked.connect(self.change_to_Help) self.left_button_5.clicked.connect(self.change_to_systemSetting)
def init_ui(self): self.setFixedSize(960,700) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.setWindowOpacity(0.9) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 self.main_layout.setSpacing(0) self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.frame = QFrame(self) self.left_layout = QtWidgets.QGridLayout(self.frame) # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.main_widget.setStyleSheet(''' QWidget#left_widget{ background:gray; border-top:1px solid white; border-bottom:1px solid white; border-left:1px solid white; border-top-left-radius:10px; border-bottom-left-radius:10px; } ''') self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.main_layout.addWidget(self.left_widget,0,0,12,2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget,0,2,12,10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_close.clicked.connect(self.close) self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_visit.clicked.connect(self.showMaximized) self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_mini.clicked.connect(self.showMinimized) self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''') self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''') self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''') self.left_widget.setStyleSheet(''' QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid blue; font-size:18px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} ''') self.left_label_1 = QtWidgets.QPushButton("国内疫情") self.left_label_1.setObjectName('left_label') self.left_label_2 = QtWidgets.QPushButton("全球疫情") self.left_label_2.setObjectName('left_label') self.left_label_3 = QtWidgets.QPushButton("联系与帮助") self.left_label_3.setObjectName('left_label') self.left_button_1 = QtWidgets.QPushButton(qtawesome.icon('fa.area-chart',color='white'),"死亡/新增确诊") self.left_button_1.setObjectName('left_button') self.left_button_1.clicked.connect(self.btn1_clicked) self.left_button_2 = QtWidgets.QPushButton(qtawesome.icon('fa.pie-chart',color='white'),"江西疫情情况") self.left_button_2.setObjectName('left_button') self.left_button_2.clicked.connect(self.btn2_clicked) self.left_button_3 = QtWidgets.QPushButton( qtawesome.icon('fa.line-chart', color='white'), "治愈/死亡率") self.left_button_3.setObjectName('left_button') self.left_button_3.clicked.connect(self.btn3_clicked) self.left_button_4 = QtWidgets.QPushButton( qtawesome.icon('fa.bar-chart', color='white'), "确诊国家排名") self.left_button_4.setObjectName('left_button') self.left_button_4.clicked.connect(self.btn4_clicked) self.left_button_5 = QtWidgets.QPushButton( qtawesome.icon('fa.line-chart', color='white'), "治愈/死亡率") self.left_button_5.setObjectName('left_button') self.left_button_5.clicked.connect(self.btn5_clicked) self.left_button_6 = QtWidgets.QPushButton( qtawesome.icon('fa.area-chart', color='white'), "死亡/新增确诊") self.left_button_6.setObjectName('left_button') self.left_button_6.clicked.connect(self.btn6_clicked) self.left_button_7 = QtWidgets.QPushButton( qtawesome.icon('fa.comment', color='white'), "反馈建议") self.left_button_7.setObjectName('left_button') self.left_button_7.clicked.connect(self.btn7_clicked) self.left_button_8 = QtWidgets.QPushButton( qtawesome.icon('fa.info-circle', color='white'), "数据来源") self.left_button_8.setObjectName('left_button') self.left_button_8.clicked.connect(self.btn8_clicked) self.left_button_9 = QtWidgets.QPushButton( qtawesome.icon('fa.question', color='white'), "遇到问题") self.left_button_9.setObjectName('left_button') self.left_button_9.clicked.connect(self.btn9_clicked) self.left_xxx = QtWidgets.QPushButton(" ") self.left_layout.addWidget(self.left_mini, 0,0,1,1) self.left_layout.addWidget(self.left_close, 0, 2,1,1) self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_layout.addWidget(self.left_label_1,1,0,1,3) self.left_layout.addWidget(self.left_button_1, 2, 0,1,3) self.left_layout.addWidget(self.left_button_2, 3, 0,1,3) self.left_layout.addWidget(self.left_button_3, 4, 0,1,3) self.left_layout.addWidget(self.left_label_2, 5, 0,1,3) self.left_layout.addWidget(self.left_button_4, 6, 0,1,3) self.left_layout.addWidget(self.left_button_5, 7, 0,1,3) self.left_layout.addWidget(self.left_button_6, 8, 0,1,3) self.left_layout.addWidget(self.left_label_3, 9, 0,1,3) self.left_layout.addWidget(self.left_button_7, 10, 0,1,3) self.left_layout.addWidget(self.left_button_8, 11, 0,1,3) self.left_layout.addWidget(self.left_button_9, 12, 0, 1, 3) self.left_close.setFixedSize(15, 15) # 设置关闭按钮的大小 self.left_visit.setFixedSize(15, 15) # 设置按钮大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 self.right_playlist_widget = QtWidgets.QWidget() # 部件 self.right_playlist_layout = QtWidgets.QGridLayout() # 网格布局 self.right_playlist_widget.setLayout(self.right_playlist_layout) self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.search_icon.setObjectName('right_button') self.right_bar_widget_search_input = QtWidgets.QLineEdit() self.right_bar_widget_search_input.setPlaceholderText("输入你想要查询的国家的英文名,回车以查询该国家的情况") self.right_bar_widget_search_input.returnPressed.connect(self.lineEdit_function) self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_label_2 = QtWidgets.QLabel(" 中国目前死亡率:"+str(total_death_percentage)+"%"+"\n\n 中国总确诊人数:"+str(data.Cases.sum())+"人"+"\n\n 中国总死亡人数:"+str(data.Deaths.sum())+"人"+"\n\n\n\n2019新型冠状病毒,2020年1月12日被世界卫生组织命名为2019-nCoV ,2020年2月11日被国际病毒分类委员\n会命名为SARS-CoV-2 。美国《科学》杂志网站12日报道说,国际病毒分类学委员会冠状病毒研究小组主席约\n翰·齐布尔表示,他们是根据基因测序等方面的分类学研究提出这个名称,“这一名称与SARS疾病之间没有关\n联”。钟南山院士9日在接受媒体采访时也曾表示,新型冠状病毒与SARS冠状病毒是同一类,但不是同一种。\n 冠状病毒是一个大型病毒家族,已知可引起感冒以及中东呼吸综合征[MERS]和严重急性呼吸综合征[SARS]\n等较严重疾病.新型冠状病毒是以前从未在人体中发现的冠状病毒新毒株。2019年12月以来,湖北省武汉市持续\n开展流感及相关疾病监测,发现多起病毒性肺炎病例,均诊断为病毒性肺炎/肺部感染人感染了冠状病毒后常见\n体征有呼吸道症状:发热;咳嗽;气促和呼吸困难等.在较严重病例中,感染可导致肺炎;严重急性呼吸综合征;肾\n衰竭;甚至死亡.目前对于新型冠状病毒所致疾病没有特异治疗方法。但许多症状是可以处理的,因此需根据患\n者临床情况进行治疗。此外,对感染者的辅助护理可能非常有效。做好自我保护包括;保持基本的手部和呼吸\n道卫生,坚持安全饮食习惯,并尽可能避免与任何表现出有呼吸道疾病症状(如咳嗽和打喷嚏等)的人密切接触。\n\n 疫情爆发至今已经有四个多月的时间了,越来越多的人们投入到这场战‘疫’之中,他们奋斗在抵抗新冠\n病毒的第一防线,甚至为之奉献生命。\n 在这个严峻的时期,我以数据分析为主,基于大数据分析以可视化方式实时动态展现疫情发展,预测疫情为\n科学决策提供支持。") self.right_label_2.setObjectName('right_label') self.right_layout.addWidget(self.right_label_2, 1, 0, 1, 3) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_bar_widget_search_input.setStyleSheet( '''QLineEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; }''') self.right_bar_widget_search_input.text()
def __init__(self): super(AwesomeExample, self).__init__() # Get icons by name. fa_icon = qta.icon('fa.flag') fa_button = QtGui.QPushButton(fa_icon, 'Font Awesome!') asl_icon = qta.icon('ei.asl') elusive_button = QtGui.QPushButton(asl_icon, 'Elusive Icons!') # Styling styling_icon = qta.icon('fa.music', active='fa.legal', color='blue', color_active='orange') music_button = QtGui.QPushButton(styling_icon, 'Styling') # Render a label with this font label = QtGui.QLabel(unichr(0xf19c) + ' ' + 'Label') label.setFont(qta.font('fa', 16)) # Stack icons camera_ban = qta.icon('fa.camera', 'fa.ban', options=[{'scale_factor': 0.5, 'active': 'fa.legal'}, {'color': 'red', 'opacity': 0.7}]) stack_button = QtGui.QPushButton(camera_ban, 'Stack') stack_button.setIconSize(QtCore.QSize(32, 32)) # Spin icons spin_button = QtGui.QPushButton(' Spinning icon') spin_icon = qta.icon('fa.spinner', color='red', animation=qta.Spin(spin_button)) spin_button.setIcon(spin_icon) # Pulse icons pulse_button = QtGui.QPushButton(' Pulsing icon') pulse_icon = qta.icon('fa.spinner', color='green', animation=qta.Pulse(pulse_button)) pulse_button.setIcon(pulse_icon) # Stacked spin icons stack_spin_button = QtGui.QPushButton('Stack spin') options = [{'scale_factor': 0.4, 'animation': qta.Spin(stack_spin_button)}, {'color': 'blue'}] stack_spin_icon = qta.icon('ei.asl', 'fa.square-o', options=options) stack_spin_button.setIcon(stack_spin_icon) stack_spin_button.setIconSize(QtCore.QSize(32, 32)) # Stack and offset icons saveall = qta.icon('fa.save', 'fa.save', options=[{'scale_factor': 0.8, 'offset': (0.2, 0.2), 'color': 'gray'}, {'scale_factor': 0.8}]) saveall_button = QtGui.QPushButton(saveall, 'Stack, offset') # Layout vbox = QtGui.QVBoxLayout() widgets = [fa_button, elusive_button, music_button, stack_button, saveall_button, spin_button, pulse_button, stack_spin_button, label] for w in widgets: vbox.addWidget(w) self.setLayout(vbox) self.setWindowTitle('Awesome') self.show()
def set_controls(self, task_name: str): """Generates the labels and controls that appear in the controls area.""" # Clear the current toolbar: self.toolbar.clear() # Clear the current task panel: self.clear_layout(self.taskLayout) # Clear the current controls: self.clear_layout(self.controlsLayout) # Enable the refresh menu action in the View menu: self.refreshAct.setDisabled(False) # Load our task from global config: task = self.config["tasks"][task_name] # Make the toolbar items: if "label" in task: label_text = task["label"] else: label_text = task_name taskLabel = QLabel( chr(0xF10D5) + " " + "<strong>Task: </strong>" + label_text) taskLabel.setFont(qta.font("fa", 26)) self.toolbar.addWidget(taskLabel) toolbarSpacer = QWidget(self) # right-aligns the refresh button toolbarSpacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) refreshButton = QAction(qta.icon("mdi.refresh"), "Refresh", self) refreshButton.setStatusTip("Refresh the controls.") refreshButton.triggered.connect(self.load_config) self.toolbar.addWidget(toolbarSpacer) self.toolbar.addAction(refreshButton) # Make the task info panel: if "description" in task: taskLabel.setToolTip(task["description"]) taskDescription = QWidget() taskDescription.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Expanding) descriptionLayout = QVBoxLayout() descriptionLayout.setAlignment(Qt.AlignTop) descriptionLabel = QLabel(task["description"]) descriptionLabel.setWordWrap(True) descriptionHeading = QLabel( chr(0xF0EA7) + " " + "<strong>Description: </strong>") descriptionHeading.setFont(qta.font("fa", 26)) descriptionLayout.addWidget(descriptionHeading) descriptionLayout.addWidget(descriptionLabel) taskDescription.setLayout(descriptionLayout) self.taskLayout.addWidget(taskDescription, 6) if "sessions" in task: taskSessions = QWidget() sessionLayout = QVBoxLayout() sessionLayout.setAlignment(Qt.AlignTop) sessionsHeading = QLabel( chr(0xF0ED8) + " " + "<strong>Sessions: </strong>") sessionsHeading.setFont(qta.font("fa", 26)) sessionLayout.addWidget(sessionsHeading) for k, v in task["sessions"].items(): sessionLayout.addWidget(QLabel(v)) taskSessions.setLayout(sessionLayout) self.taskLayout.addWidget(taskSessions, 6) else: spacer = QWidget(self) spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.taskLayout.addWidget(spacer, 6) # Refresh the task info panel layout: self.task_panel.setLayout(self.taskLayout) # Make controls for this task: task["key"] = task_name # Insert task id key to the task dict # Construct on/off button controls for each board in our task: for key, board in task["boards"].items(): self.controlsLayout.addWidget(OnOffWidget(board, task)) self.controls.setLayout(self.controlsLayout)
def init_ui(self): self.setFixedSize(550, 325) self.main_widget = QtWidgets.QWidget() # 创建窗口主部件 self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局 self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局 self.left_widget = QtWidgets.QWidget() # 创建左侧部件 self.left_widget.setObjectName('left_widget') self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层 self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格 self.left_widget.setStyleSheet(''' QPushButton{border:none;color:white;} QPushButton#left_label{ border:none; border-bottom:1px solid white; font-size:18px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;} ''') self.right_widget = QtWidgets.QWidget() # 创建右侧部件 self.right_widget.setObjectName('right_widget') self.right_layout = QtWidgets.QGridLayout() self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格 self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件 self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局 self.right_bar_widget.setLayout(self.right_bar_layout) self.search_icon = QtWidgets.QLabel(chr(0xf002) + ' ' + '搜索 ') self.search_icon.setFont(qtawesome.font('fa', 16)) self.right_bar_widget_search_input = QtWidgets.QLineEdit("") self.right_bar_widget_search_input.setPlaceholderText( "输入歌手、歌曲或用户,回车进行搜索") self.right_bar_layout.addWidget(self.search_icon, 0, 0, 1, 1) self.right_bar_layout.addWidget(self.right_bar_widget_search_input, 0, 1, 1, 8) self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9) self.right_bar_widget_search_input.returnPressed.connect( self.Get_song_name) self.right_bar_widget_search_input.setStyleSheet('''QLineEdit{ border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; }''') self.right_widget.setStyleSheet(''' QWidget#right_widget{ color:#232C51; background:white; border-top:1px solid darkGray; border-bottom:1px solid darkGray; border-right:1px solid darkGray; border-top-right-radius:10px; border-bottom-right-radius:10px; } QLabel#right_lable{ border:none; font-size:16px; font-weight:700; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ''') # icon = QtGui.QIcon() # icon.addPixmap(QtGui.QPixmap("ico/瓜板.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) # self.setWindowIcon(icon) # self.setToolTip("") self.main_layout.addWidget(self.left_widget, 0, 0, 12, 2) # 左侧部件在第0行第0列,占8行3列 self.main_layout.addWidget(self.right_widget, 0, 2, 12, 10) # 右侧部件在第0行第3列,占8行9列 self.setCentralWidget(self.main_widget) # 设置窗口主部件 self.left_close = QtWidgets.QPushButton("") # 关闭按钮 self.left_visit = QtWidgets.QPushButton("") # 空白按钮 self.left_mini = QtWidgets.QPushButton("") # 最小化按钮 self.left_close.setFixedSize(15, 15) # 设置关闭按钮的大小 self.left_visit.setFixedSize(15, 15) # 设置按钮大小 self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小 self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1) # 放置最小化按钮 self.left_layout.addWidget(self.left_close, 0, 2, 1, 1) # 放置关闭按钮 self.left_layout.addWidget(self.left_visit, 0, 1, 1, 1) # 放置空白按钮 self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''' ) self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''' ) self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''' ) self.left_close.clicked.connect(self.left_close_event) # 添加关闭功能 self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 self.setWindowOpacity(0.95) # 设置窗口透明度 # self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.main_layout.setSpacing(0)