mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2024-12-29 16:44:13 +08:00
dyna width
This commit is contained in:
parent
35d616c95e
commit
d4d48d6f97
@ -12,7 +12,7 @@ from PyQt5.QtWidgets import (
|
|||||||
QAction,
|
QAction,
|
||||||
QApplication,
|
QApplication,
|
||||||
)
|
)
|
||||||
from PyQt5.QtGui import QResizeEvent
|
from PyQt5.QtGui import QResizeEvent, QFont, QFontMetrics
|
||||||
from PyQt5.QtWidgets import QTabWidget
|
from PyQt5.QtWidgets import QTabWidget
|
||||||
import qtawesome, gobject
|
import qtawesome, gobject
|
||||||
import functools, threading, windows, winsharedutils
|
import functools, threading, windows, winsharedutils
|
||||||
@ -38,6 +38,45 @@ class gridwidget(QWidget):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class TabWidget(QWidget):
|
||||||
|
currentChanged = pyqtSignal(int)
|
||||||
|
|
||||||
|
def setCurrentIndex(self, idx):
|
||||||
|
self.list_widget.setCurrentRow(idx)
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super(TabWidget, self).__init__(parent)
|
||||||
|
layout = QHBoxLayout()
|
||||||
|
layout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.setLayout(layout)
|
||||||
|
self.list_widget = QListWidget(self)
|
||||||
|
self.tab_widget = QTabWidget(self)
|
||||||
|
self.tab_widget.tabBar().hide() # 隐藏默认的 TabBar
|
||||||
|
self.tab_widget.setTabPosition(QTabWidget.West) # 将 Tab 放在左侧
|
||||||
|
layout.addWidget(self.list_widget)
|
||||||
|
layout.addWidget(self.tab_widget)
|
||||||
|
self.currentChanged.connect(
|
||||||
|
self.tab_widget.setCurrentIndex
|
||||||
|
) # 监听 Tab 切换事件
|
||||||
|
self.list_widget.currentRowChanged.connect(self.currentChanged)
|
||||||
|
self.idx = 0
|
||||||
|
self.titles = []
|
||||||
|
|
||||||
|
def addTab(self, widget, title):
|
||||||
|
self.titles.append(title)
|
||||||
|
self.tab_widget.addTab(widget, title)
|
||||||
|
item = QListWidgetItem(title)
|
||||||
|
item.setTextAlignment(Qt.AlignCenter)
|
||||||
|
item.setSizeHint(QSize(self.tab_widget.width(), 50))
|
||||||
|
self.list_widget.addItem(item)
|
||||||
|
if self.idx == 0:
|
||||||
|
self.list_widget.setCurrentRow(0)
|
||||||
|
self.idx += 1
|
||||||
|
|
||||||
|
def currentWidget(self):
|
||||||
|
return self.tab_widget.currentWidget()
|
||||||
|
|
||||||
|
|
||||||
class Settin(closeashidewindow):
|
class Settin(closeashidewindow):
|
||||||
voicelistsignal = pyqtSignal(list, int)
|
voicelistsignal = pyqtSignal(list, int)
|
||||||
mp3playsignal = pyqtSignal(str, int, bool)
|
mp3playsignal = pyqtSignal(str, int, bool)
|
||||||
@ -50,7 +89,7 @@ class Settin(closeashidewindow):
|
|||||||
setstylesheetsignal = pyqtSignal()
|
setstylesheetsignal = pyqtSignal()
|
||||||
|
|
||||||
def resizefunction(self):
|
def resizefunction(self):
|
||||||
ww = self.size().width() - self.window_width * 0.2 - 30
|
ww = self.size().width() - self.list_width - 30
|
||||||
for w in self.needfitwidgets:
|
for w in self.needfitwidgets:
|
||||||
w.setFixedWidth(int(ww))
|
w.setFixedWidth(int(ww))
|
||||||
for grid, maxl in self.needfitcols:
|
for grid, maxl in self.needfitcols:
|
||||||
@ -111,16 +150,13 @@ class Settin(closeashidewindow):
|
|||||||
self.opensolvetextsig.connect(self.opensolvetextfun)
|
self.opensolvetextsig.connect(self.opensolvetextfun)
|
||||||
|
|
||||||
self.setMinimumSize(100, 100)
|
self.setMinimumSize(100, 100)
|
||||||
# 界面尺寸
|
self.list_width=100
|
||||||
self.window_width = 900 if globalconfig["languageuse"] == 0 else 1200
|
|
||||||
|
|
||||||
self.window_height = 500
|
self.window_height = 500
|
||||||
self.savelastrect = None
|
self.savelastrect = None
|
||||||
|
|
||||||
self.hooks = []
|
self.hooks = []
|
||||||
|
|
||||||
self.usevoice = 0
|
self.usevoice = 0
|
||||||
self.isfirstshow = True
|
|
||||||
self.inittray()
|
self.inittray()
|
||||||
setTabOne_direct(self)
|
setTabOne_direct(self)
|
||||||
settab2d(self)
|
settab2d(self)
|
||||||
@ -135,6 +171,43 @@ class Settin(closeashidewindow):
|
|||||||
self.setstylesheetsignal.connect(self.setstylesheet)
|
self.setstylesheetsignal.connect(self.setstylesheet)
|
||||||
threading.Thread(target=self.darklistener).start()
|
threading.Thread(target=self.darklistener).start()
|
||||||
|
|
||||||
|
self.setWindowTitle(_TR("设置"))
|
||||||
|
self.setWindowIcon(qtawesome.icon("fa.gear"))
|
||||||
|
|
||||||
|
self.tab_widget = self.makesubtab_lazy(klass=TabWidget)
|
||||||
|
self.setCentralWidget(self.tab_widget)
|
||||||
|
|
||||||
|
self.tab_widget.setStyleSheet(
|
||||||
|
"""QListWidget {
|
||||||
|
font:16pt ; }
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
# self.tab_widget.setTabPosition(QTabWidget.West)
|
||||||
|
setTabOne(self)
|
||||||
|
setTabTwo(self)
|
||||||
|
|
||||||
|
setTabThree(self)
|
||||||
|
setTab7(self)
|
||||||
|
setTabcishu(self)
|
||||||
|
setTab5(self)
|
||||||
|
|
||||||
|
setTab_quick(self)
|
||||||
|
|
||||||
|
setTablang(self)
|
||||||
|
setTab_proxy(self)
|
||||||
|
setTab_about(self)
|
||||||
|
|
||||||
|
width = 0
|
||||||
|
fn = QFont()
|
||||||
|
fn.setPixelSize(16)
|
||||||
|
fn.setFamily(globalconfig["settingfonttype"])
|
||||||
|
fm = QFontMetrics(fn)
|
||||||
|
for title in self.tab_widget.titles:
|
||||||
|
width = max(fm.width(title), width)
|
||||||
|
width += 100
|
||||||
|
self.tab_widget.list_widget.setFixedWidth(width)
|
||||||
|
self.list_width = width
|
||||||
|
|
||||||
def inittray(self):
|
def inittray(self):
|
||||||
|
|
||||||
showAction = QAction(
|
showAction = QAction(
|
||||||
@ -161,77 +234,6 @@ class Settin(closeashidewindow):
|
|||||||
self.show()
|
self.show()
|
||||||
self.tab_widget.setCurrentIndex(3)
|
self.tab_widget.setCurrentIndex(3)
|
||||||
|
|
||||||
def showEvent(self, e):
|
|
||||||
if self.isfirstshow:
|
|
||||||
self.setWindowTitle(_TR("设置"))
|
|
||||||
self.setWindowIcon(qtawesome.icon("fa.gear"))
|
|
||||||
|
|
||||||
class TabWidget(QWidget):
|
|
||||||
currentChanged = pyqtSignal(int)
|
|
||||||
|
|
||||||
def setCurrentIndex(self, idx):
|
|
||||||
self.list_widget.setCurrentRow(idx)
|
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
super(TabWidget, self).__init__(parent)
|
|
||||||
layout = QHBoxLayout()
|
|
||||||
layout.setContentsMargins(0, 0, 0, 0)
|
|
||||||
self.setLayout(layout)
|
|
||||||
self.list_widget = QListWidget(self)
|
|
||||||
self.tab_widget = QTabWidget(self)
|
|
||||||
self.tab_widget.tabBar().hide() # 隐藏默认的 TabBar
|
|
||||||
self.tab_widget.setTabPosition(QTabWidget.West) # 将 Tab 放在左侧
|
|
||||||
layout.addWidget(self.list_widget)
|
|
||||||
layout.addWidget(self.tab_widget)
|
|
||||||
self.currentChanged.connect(
|
|
||||||
self.tab_widget.setCurrentIndex
|
|
||||||
) # 监听 Tab 切换事件
|
|
||||||
self.list_widget.currentRowChanged.connect(self.currentChanged)
|
|
||||||
self.idx = 0
|
|
||||||
|
|
||||||
def addTab(self, widget, title):
|
|
||||||
self.tab_widget.addTab(widget, title)
|
|
||||||
item = QListWidgetItem(title)
|
|
||||||
item.setTextAlignment(Qt.AlignCenter)
|
|
||||||
item.setSizeHint(QSize(self.tab_widget.width(), 50))
|
|
||||||
self.list_widget.addItem(item)
|
|
||||||
if self.idx == 0:
|
|
||||||
self.list_widget.setCurrentRow(0)
|
|
||||||
self.idx += 1
|
|
||||||
|
|
||||||
def currentWidget(self):
|
|
||||||
return self.tab_widget.currentWidget()
|
|
||||||
|
|
||||||
self.tab_widget = self.makesubtab_lazy(klass=TabWidget)
|
|
||||||
self.setCentralWidget(self.tab_widget)
|
|
||||||
self.tab_widget.list_widget.setFixedWidth(int(self.window_width * 0.2))
|
|
||||||
|
|
||||||
self.tab_widget.setStyleSheet(
|
|
||||||
"""QListWidget {
|
|
||||||
font:%spt ; }
|
|
||||||
"""
|
|
||||||
% (
|
|
||||||
globalconfig["tabfont_chs"]
|
|
||||||
if globalconfig["languageuse"] == 0
|
|
||||||
else globalconfig["tabfont_otherlang"]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
# self.tab_widget.setTabPosition(QTabWidget.West)
|
|
||||||
setTabOne(self)
|
|
||||||
setTabTwo(self)
|
|
||||||
|
|
||||||
setTabThree(self)
|
|
||||||
setTab7(self)
|
|
||||||
setTabcishu(self)
|
|
||||||
setTab5(self)
|
|
||||||
|
|
||||||
setTab_quick(self)
|
|
||||||
|
|
||||||
setTablang(self)
|
|
||||||
setTab_proxy(self)
|
|
||||||
setTab_about(self)
|
|
||||||
self.isfirstshow = False
|
|
||||||
|
|
||||||
def darklistener(self):
|
def darklistener(self):
|
||||||
sema = winsharedutils.startdarklistener()
|
sema = winsharedutils.startdarklistener()
|
||||||
while True:
|
while True:
|
||||||
|
@ -193,8 +193,6 @@
|
|||||||
"premtsimiuse": false,
|
"premtsimiuse": false,
|
||||||
"buttoncolor": "#001f9f",
|
"buttoncolor": "#001f9f",
|
||||||
"premtsimi": 5,
|
"premtsimi": 5,
|
||||||
"tabfont_chs": 18,
|
|
||||||
"tabfont_otherlang": 10,
|
|
||||||
"ocrrangecolor": "#000000",
|
"ocrrangecolor": "#000000",
|
||||||
"ocrrangewidth": 2,
|
"ocrrangewidth": 2,
|
||||||
"useproxy": true,
|
"useproxy": true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user