Я пытался создать хороший графический интерфейс для своей программы, и я знал, что мне также нужен классный шрифт.Поэтому я установил шрифт 'Ubuntu' со всеми весами.
Но когда я пытаюсь это сделать:
class MenuButton(QPushButton):
def __init__(self, caption):
super().__init__()
self.setFixedHeight(60)
self.setFixedWidth(100)
self.setFlat(True)
font = QFont()
font.setFamily('Ubuntu')
font.setWeight(QFont.Bold)
font.setPixelSize(20)
self.setFont(font)
self.setStyleSheet("color: rgb(85,170,255);")
self.setText(caption)
, я получаю шрифт, который совершенно точно не тот, который я выбрал:
Но когда я призываю QFontDialog
в начале моего приложения, я вижу шрифт Ubuntu, и он называется Ubuntu!
Почему он не работает и что я должен сделать, чтобы он работал?
Цените помощь ...
Вот и все:
import sys
import _thread
from PyQt5.QtCore import QSize, Qt, QRect, QObject
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QLabel, QTabWidget, QGridLayout, QVBoxLayout, \
QHBoxLayout, QSizePolicy, QSpacerItem, QStyle, QStyleFactory, QPushButton, QFrame, QFontDialog, QStackedWidget
from PyQt5.QtGui import QImage, QIcon, QPixmap, QPalette, QBrush, QColor, QFontDatabase, QFont
### Custom Classes
class MenuButton(QPushButton):
def __init__(self, caption):
super().__init__()
self.setFixedHeight(40)
self.setFixedWidth(100)
self.setFlat(True)
font = QFont()
font.setFamily('Ubuntu')
font.setWeight(QFont.Bold)
font.setPixelSize(19)
self.setFont(QFont('Ubuntu', 19, QFont.Medium))
self.setStyleSheet("color: rgb(85,170,255);")
self.setText(caption)
def select(self):
self.setStyleSheet("color: rgb(255,255,255);")
def deselect(self):
self.setStyleSheet("color: rgb(85,170,255);")
class StackPage(QWidget):
def __init__(self):
super().__init__()
self.setStyleSheet('background-color: rgb(28,33,39)')
self.layout = QVBoxLayout()
self.setLayout(self.layout)
class MainScreen(QWidget):
def __init__(self):
super().__init__()
#self.windowWidth = 500
#self.windowHeight = 300
self.icon = 'images\\system\\HashshashinLogo.png'
self.title = 'DevOrder'
self.fontFamily = 'Segoe UI' # Corbel | Sagoe UI
self.fontColor = 'black'
self.fontSize = '12'
self.initUI()
def initUI(self):
self.setStyleSheet('font-family: %s; color: %s; background-color: rgb(28,33,39);' % (self.fontFamily, self.fontColor))
self.setWindowTitle(self.title)
self.setWindowIcon(QIcon(self.icon))
#self.setFixedSize(self.windowWidth, self.windowHeight)
### Top Menu
def menubtnProjectsClicked():
menubtnProjects.select()
menubtnClients.deselect()
menubtnUpdates.deselect()
menubtnSettings.deselect()
self.leftStackMenu.setCurrentIndex(0)
def menubtnClientsClicked():
menubtnProjects.deselect()
menubtnClients.select()
menubtnUpdates.deselect()
menubtnSettings.deselect()
self.leftStackMenu.setCurrentIndex(1)
def menubtnUpdatesClicked():
menubtnProjects.deselect()
menubtnClients.deselect()
menubtnUpdates.select()
menubtnSettings.deselect()
self.leftStackMenu.setCurrentIndex(2)
def menubtnSettingsClicked():
menubtnProjects.deselect()
menubtnClients.deselect()
menubtnUpdates.deselect()
menubtnSettings.select()
self.leftStackMenu.setCurrentIndex(3)
menubtnProjects = MenuButton('Projects')
menubtnProjects.clicked.connect(menubtnProjectsClicked)
menubtnClients = MenuButton('Clients')
menubtnClients.clicked.connect(menubtnClientsClicked)
menubtnUpdates = MenuButton('Updates')
menubtnUpdates.clicked.connect(menubtnUpdatesClicked)
menubtnSettings = MenuButton('Settings')
menubtnSettings.clicked.connect(menubtnSettingsClicked)
### Left Menu
self.leftStackMenu = QStackedWidget()
self.leftStackMenu.setFixedWidth(500)
leftProjectsPage = StackPage()
leftProjectsPage.setStyleSheet('background-color: white;')
leftClientsPage = StackPage()
leftClientsPage.setStyleSheet('background-color: red;')
leftUpdatesPage = StackPage()
leftUpdatesPage.setStyleSheet('background-color: blue;')
leftSettingsPage = StackPage()
leftSettingsPage.setStyleSheet('background-color: yellow;')
self.leftStackMenu.addWidget(leftProjectsPage)
self.leftStackMenu.addWidget(leftClientsPage)
self.leftStackMenu.addWidget(leftUpdatesPage)
self.leftStackMenu.addWidget(leftSettingsPage)
### Placings
menuLayout = QHBoxLayout()
menuLayout.setContentsMargins(50, 10, 10, 10)
menuLayout.addWidget(menubtnProjects)
menuLayout.addWidget(menubtnClients)
menuLayout.addWidget(menubtnUpdates)
menuLayout.addWidget(menubtnSettings)
menuLayout.addSpacerItem(QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum))
stacksLayout = QHBoxLayout()
stacksLayout.addWidget(self.leftStackMenu)
menuWidget = QWidget()
menuWidget.setStyleSheet('background-color: rgb(22,26,31);')
menuWidget.setLayout(menuLayout)
mainLayout = QVBoxLayout()
mainLayout.addWidget(menuWidget)
mainLayout.addLayout(stacksLayout)
mainLayout.addSpacerItem(QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding))
mainLayout.setContentsMargins(0, 0, 0, 0)
self.setLayout(mainLayout)
#self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
#print('Currently used style:', app.style().metaObject().className())
#print('Available styles:', QStyleFactory.keys())
app.setStyle(QStyleFactory().create('windowsvista'))
QFontDialog().getFont()
loadingScreen = LoadingScren()
sys.exit(app.exec_())