سؤال

وفقًا لتعليمات getOpenFileName:

QString fileName = QFileDialog.getOpenFileName(this, tr("Open File"), 
                                          "/home",
                                          tr("Images (*.png *.xpm *.jpg)"));

كيف يمكنني أن أجعل مربع الحوار يتذكر المسار في المرة الأخيرة عندما أغلقه؟

وماذا يعني tr في tr("Open File")?

شكرًا

هل كانت مفيدة؟

المحلول

إذا قمت بحذف dir وسيطة (أو تمرير سلسلة فارغة)، يجب أن يتذكر مربع الحوار الدليل الأخير:

filename = QtGui.QFileDialog.getOpenFileName(
               parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)')

ال آر تُستخدم الوظيفة لترجمة السلاسل المرئية للمستخدم.يمكنك حذفه إذا كنت لن تقدم أبدًا ترجمات لتطبيقك.

يحرر:

يبدو أن دليل البدء قد لا يتم تذكره تلقائيًا على كافة الأنظمة الأساسية/أجهزة الكمبيوتر المكتبية، اعتمادًا على ما إذا كنت تستخدم مربع الحوار الأصلي أم لا.إذا تم استخدام مربع الحوار المدمج في Qt، فيجب دائمًا إعادة تذكر دليل البدء تلقائيًا على جميع الأنظمة الأساسية (حتى بين استدعاءات التطبيق).لتجربة مربع الحوار غير الأصلي، قم بما يلي:

filename = QtGui.QFileDialog.getOpenFileName(
               parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)',
               None, QtGui.QFileDialog.DontUseNativeDialog)

وبدلاً من ذلك، يمكنك استخدام منشئ QFileDialog, ، والتي سوف دائماً إنشاء مربع حوار غير أصلي:

dialog = QtGui.QFileDialog(parent)
dialog.setWindowTitle('Open File')
dialog.setNameFilter('Images (*.png *.xpm *.jpg)')
dialog.setFileMode(QtGui.QFileDialog.ExistingFile)
if dialog.exec_() == QtGui.QDialog.Accepted:
    filename = dialog.selectedFiles()[0]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top