Chciałbym stworzyć przeglądarkę obrazów, która wyświetla ładnie i równomiernie rozmieszczone miniatury, na rodzimej przeglądarce plików.qt5 (i python) - Jak uzyskać domyślny rozmiar miniaturki użytkownika os
Na oknach, mam nadzieję, że to wyglądać podobnie do tego:
na Ubuntu, mam nadzieję, że to wyglądać podobnie do tego:
Ale to jest to, co jest teraz dostępne:
Jednym z problemów, przed którymi stoję, jest określenie prawidłowego rozmiaru miniatur dla obrazów. Rozumiem, że mogę ustawić rozmiar miniatury programowo za pomocą kodu self.setIconSize(QSize(32, 32))
, jednak ustawienie rozmiaru miniatury w ten sposób może spowodować, że rozmiary będą niezgodne z domyślnym ustawieniem systemu, co sprawi, że będzie wyglądać nienaturalnie.
Więc moje pytanie brzmi: W jaki sposób mogę uzyskać „domyślnego rozmiaru miniatur”, który jest ustawiony na pulpicie użytkownika, aby mój wygląd miniatur zgodne z OS użytkownika (przy użyciu qt5 a dokładniej PySide2 lub PyQt5)?
Oto kod pracuję z tak daleko: `
import sys
from PySide2.QtCore import QSize
from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QApplication, QListWidget, QListWidgetItem, QMainWindow
class ThumbsWindow(QListWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.initUI()
def initUI(self):
self.setViewMode(QListWidget.IconMode)
self.setIconSize(QSize(32, 32))
myimage_path = "./images/web.png"
myimage_path1 = "./images/image1.jpg"
myimage_path2 = "./images/image2.jpg"
myimage_path3 = "./images/image3.jpg"
image_list = [myimage_path, myimage_path1, myimage_path2, myimage_path3]
# create a list of QIcons
image_items = [QListWidgetItem(QIcon(path_x), "sample image") for path_x in image_list]
# add each of the QIcons onto the QListWidget
for image_item in image_items:
self.addItem(image_item)
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
t = ThumbsWindow()
self.setCentralWidget(t)
self.resize(400, 300)
self.setWindowTitle('Image Thumbnails')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
`
Co sprawia, że myślisz, że istnieje domyślny rozmiar systemu? Nie widzę żadnych dowodów na to w twoim pytaniu. A w każdym razie, dlaczego nie możesz po prostu pozwolić użytkownikowi wybrać rozmiar dla siebie (co prawdopodobnie robią wszystkie inne aplikacje)? – ekhumoro
Przykładem może być użytkownik ubuntu, po otwarciu jego folderu "Pictures", spotyka się miniaturowe wersje dowolnych zdjęć w tym folderze. Przedstawiono mu jednolitą wielkość _default_ dla tych miniatur.Ubuntu nie otwiera okna dialogowego, które wymaga od użytkownika wprowadzenia rozmiaru, jaki ma mieć jego miniatury, zanim zostanie pokazana miniaturka jego folderu. To samo dotyczy użytkowników systemu Windows. Użytkownicy systemu Windows mają miniaturki o domyślnym rozmiarze _uniform_, nawet bez uprzedniego poproszenia użytkownika o określenie, jaki ma być rozmiar jego miniaturek. –
Ale to nie pokazuje, że istnieje domyślny rozmiar ** systemu **. Każda aplikacja po prostu działa sama. – ekhumoro