2016-09-22 8 views
5

ネイティブで見えるファイルブラウザで、きれいにタイル張りのサムネイルを表示するイメージブラウザを作成したいと考えています。 Windows上でqt5(およびpython) - ユーザーのosのデフォルトのサムネイルサイズを取得する方法

は、私はそれがこれに似たものになります願っています:Ubuntuで

enter image description here

を、私はそれがこれに似たものになります願っています:

enter image description here

これは現在入手可能なものです:

thumbnail sized are different from default size

私が直面している問題の1つは、画像の正しいサムネイルサイズを指定することです。私は、コードself.setIconSize(QSize(32, 32))を使用してプログラムでサムネイルのサイズを設定できることを理解していますが、サムネイルのサイズをこのように設定すると、システムのデフォルトと矛盾するサイズになる可能性があります。

だから私の質問は:は、どのように私は(より具体的にPySide2またはPyQt5をqt5を使用するか)は、ユーザーのOSと一致し、私のサムネイル外観を作るために、ユーザーのデスクトップ上に設定されている「デフォルトのサムネイルサイズ」を得るのですか?

ここで私はこれまでのところで働いているコードです: `

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_()) 

`

+1

デフォルトのシステムサイズはどうだと思いますか?私はあなたの質問にその証拠は見当たりません。そして、どのような場合でも、なぜあなたは自分自身のためにサイズを選択させることができないのでしょうか(他のすべてのアプリケーションがそうするでしょう)? – ekhumoro

+1

ubuntuユーザーの場合、 "Pictures"フォルダを開くと、そのフォルダ内にある写真のサムネイル版が表示されます。彼はこれらのサムネイルに対して均一な_default_サイズを提示されます。Ubuntuは、サムネイルの内容が表示される前に、サムネイルのサイズを入力する必要があるダイアログボックスをポップアップ表示しません。 Windowsユーザーと同じことです。 Windowsのユーザーには、サムネイルのサイズが欲しいものを指定するようにユーザーに依頼しなくても、デフォルトのサイズである一様なサイズのサムネイルが表示されます。 –

+1

しかし、それはデフォルトの**システム**サイズがあることを示していません。それぞれのアプリケーションは独自の処理を行います。 – ekhumoro

答えて

1

私はおそらくこれに答えることで助けるために少し遅れだけど、私はあなたが探していると考えているが、これは間違ったアプローチからです。
イメージサムネイルの「システムデフォルト」サイズは技術的にはないと他の人が言っているように。サムネイルは、サムネイルのサイズを決定するファイルマネージャプログラム(Windowsエクスプローラ、ノーチラスなど)に表示されます。システムではありません。

上記の両方のプログラムでは、サムネイルのサイズを調整できるため、デフォルトのシステム設定があっても、1人のユーザーの推奨サイズは普遍的なものではありません。

GUIの横にあるデフォルトのファイルマネージャを開き、アイコンサイズを比較することができます。あなたのファイルマネージャがデフォルトのファイルマネージャより小さい場合は、コードのアイコンのサイズを調整して(上記の方法で)、再度比較してください。彼らがスイートにあなたと同じサイズに十分に近く見えるとき、それはあなたのデフォルトサイズです。ユーザーにサイズを調整するオプションを与える場合は、オプションを追加して調整し、アプリケーションの起動時に初期化されるアイコンサイズとして新しいサイズを保存して、ユーザーが独自のデフォルトサイズを選択できるようにします。

これ以外にも、デフォルトのファイルマネージャーからアイコンサイズを取得する方法はないと思います。

+0

お返事ありがとうございます。あなたが正しい。私は、あなたが言ったのと同様の解決策を使用して終了しました。しかし、アイコンのサイズとデフォルトのGUIをゆっくりと比較するのではなく、段階的に再調整する代わりに、私はここで見つかったプリセット値を代わりに使用することにしました:http://www.visualpharm.com/articles/icon_sizes.html。基本的には、ユーザーがアプリを開くと、WindowsとLinuxのアイコンサイズは48 x 48に設定されます。その後、ユーザーは、上記のリンクで列挙されたさまざまなサイズに基づいてアイコンサイズを調整できます。 –

関連する問題