Tôi đang tìm cách tạo trình duyệt hình ảnh hiển thị hình thu nhỏ đẹp mắt và đồng đều, trên trình duyệt tệp gốc.qt5 (và python) - Cách lấy kích thước hình thu nhỏ mặc định của os của người dùng
Trên cửa sổ, tôi hy vọng nó sẽ giống như thế này:
On ubuntu, tôi hy vọng nó sẽ giống như thế này:
Nhưng đây là những gì hiện có sẵn:
Một trong những vấn đề tôi đang gặp phải là chỉ định kích thước hình thu nhỏ chính xác cho hình ảnh. Tôi hiểu rằng tôi có thể đặt kích thước hình thu nhỏ bằng cách sử dụng mã self.setIconSize(QSize(32, 32))
, tuy nhiên, việc đặt kích thước hình thu nhỏ theo cách này có thể dẫn đến kích thước không phù hợp với mặc định của hệ thống, làm cho nó trông không tự nhiên.
Vì vậy, câu hỏi của tôi là: Làm thế nào để có được "kích thước thumbnail mặc định" được thiết lập trên máy tính để bàn của người dùng, để làm xuất hiện hình ảnh thu nhỏ của tôi phù hợp với os của người dùng (sử dụng qt5 hay cụ thể hơn PySide2 hoặc PyQt5)?
Dưới đây là đoạn code tôi đang làm việc với rất xa: '
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_())
'
Điều gì khiến bạn nghĩ rằng có kích thước hệ thống mặc định? Tôi không thấy bất kỳ bằng chứng nào cho câu hỏi của bạn. Và trong mọi trường hợp, tại sao bạn không thể cho phép người dùng chọn kích thước cho chính họ (có lẽ đó là những gì tất cả các ứng dụng khác làm)? – ekhumoro
Một ví dụ sẽ là một người dùng ubuntu, khi mở thư mục "Hình ảnh" của mình, được đáp ứng với các phiên bản hình thu nhỏ của bất kỳ hình ảnh nào trong thư mục đó. Ông được trình bày với một kích thước _default_ thống nhất cho những ngón tay cái.Ubuntu không bật mở một hộp thoại yêu cầu người dùng nhập kích thước mà anh ta muốn hình thu nhỏ của mình, trước khi được hiển thị nội dung hình thu nhỏ của thư mục của anh ấy. Điều tương tự với người dùng windows. Người dùng Windows được trình bày với hình thu nhỏ có kích thước mặc định _uniform_, ngay cả khi không yêu cầu người dùng chỉ định những gì anh ta muốn kích thước của hình thu nhỏ của mình. –
Nhưng điều đó không cho thấy rằng có kích thước ** hệ thống ** mặc định. Mỗi ứng dụng chỉ làm việc riêng của nó. – ekhumoro