मैं QFileInfo से isWritable() का उपयोग करना चाहता हूं। दस्तावेज़ों के अनुसार, आपको किसी तरह qt_ntfs_permission_lookup से 1 तक विंडोज़ पर सार्थक परिणाम प्राप्त करने के लिए। इसके लिए C++ कोड है

extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
qt_ntfs_permission_lookup++; // turn checking on
qt_ntfs_permission_lookup--; // turn it off again

मैं बाहरी कथन को पायथन में "अनुवाद" कैसे करूं?

1
bfris 31 जुलाई 2020, 02:26

1 उत्तर

सबसे बढ़िया उत्तर

एक संभावित समाधान उन कार्यों को बनाना है जो उस चर की स्थिति को सी ++ में बदलते हैं और इसे पायथन में निर्यात करते हैं। अजगर को C++ फ़ंक्शन निर्यात करने के लिए pybind11, SWIG, Sip, shiboken2, आदि जैसे विकल्प हैं।

इस मामले में, pybind11 का उपयोग करके एक छोटा पुस्तकालय लागू करें

#include <pybind11/pybind11.h>
#include <pybind11/stl.h>

namespace py = pybind11;

#ifdef Q_OS_WIN
QT_BEGIN_NAMESPACE
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
QT_END_NAMESPACE
#endif

PYBIND11_MODULE(qt_ntfs_permission, m) {

    m.def("enable", [](){
#ifdef Q_OS_WIN
        qt_ntfs_permission_lookup = 1;
#endif
    });      
    m.def("disable", [](){
#ifdef Q_OS_WIN
        qt_ntfs_permission_lookup = 0;
#endif
    });      

#ifdef VERSION_INFO
    m.attr("__version__") = VERSION_INFO;
#else
    m.attr("__version__") = "dev";
#endif
}

और आप इन चरणों का पालन करके इसे स्थापित कर सकते हैं:

आवश्यकताएं:

  • क्यूटी5
  • दृश्य स्टूडियो
  • सेमेक
git clone https://github.com/eyllanesc/qt_ntfs_permission_lookup.git
python setup.py install

इसके अलावा जीथब क्रियाओं की मदद से मैंने क्यूटी और पायथन के कुछ संस्करणों के लिए पहियों का निर्माण किया है, इसलिए इसे यहां, .whl निकालें और चलाएं:

python -m pip install qt_ntfs_permission-0.1.0-cp38-cp38-win_amd64.whl

फिर आप इसे इस प्रकार चलाते हैं:

from PyQt5.QtCore import QFileInfo

import qt_ntfs_permission

qt_ntfs_permission.enable()
qt_ntfs_permission.disable()
2
eyllanesc 31 जुलाई 2020, 20:17