2013-04-07 30 views
13

Tôi gặp sự cố khi nhập tệp tài nguyên. Tôi đang sử dụng pyqt4 với studio khỉ và tôi đang cố gắng nhập một hình ảnh png. Khi tôi chạy chương trình, tôi gặp phải lỗi nhập nhưPYQT4 - Làm cách nào để biên dịch và nhập tệp qrc vào chương trình của tôi?

ImportError: No module named icon_rc

Tôi biết rằng tôi phải biên dịch nó bằng pyrcc4 nhưng tôi không hiểu cách thực hiện việc này. Sẽ rất hữu ích khi có câu trả lời giải thích đầy đủ cách biên dịch tệp tài nguyên để tôi có thể nhập tệp đó.

Trả lời

26

cmd mở (hoặc thiết bị đầu cuối trên * nix) và chạy

pyrcc4 -py3 F:\computing\Payrollv22\icon.qrc -o icon_rc.py 

Nó biên soạn các tập tin thành công và tôi đã có thể import file py vào dự án của tôi và chạy nó không có vấn đề.

+3

Nó có thể đáng để chỉ ra rằng công tắc '-py3' chỉ được yêu cầu nếu bạn đang sử dụng Python 3.x. Nếu bạn đang sử dụng Python 2.x, tệp tài nguyên cần được biên dịch mà không cần chuyển đổi bổ sung này. – 0x8BADF00D

+0

@ 0x8BADF00D [Theo tài liệu] (http://pyqt.sourceforge.net/Docs/PyQt4/resources.html), cờ '-py3' sẽ tạo một tệp tương thích với bất kỳ Python 2.6 trở lên nào, vì vậy trừ khi bạn đang sử dụng phiên bản Python thực sự cổ, bạn nên luôn sử dụng '-py3' để pyside – jpyams

19

Có thực sự là không nhiều để giải thích ở đây, bạn có một tập tin tài nguyên (ví dụ icon.qrc), sau đó bạn gọi pyrcc4 -o icon_rc.py icon.qrc mà sẽ tạo ra một mô-đun icon_rc.py mà sau đó bạn có thể nhập vào dự án của bạn.

Đó là tất cả tài liệu here.

+0

tôi chỉ không thể chuyển đổi tệp qrc này thành một mô đun py. khi tôi sử dụng mã trong cmd pyrcc4 -o icon_rc.py icon.qrc nó nói pyrcc4: Tệp không tồn tại 'icon.qrc' – Thomas

+0

Và, nó tồn tại trong thư mục bạn đang chạy lệnh? – mata

+1

ah okay vì vậy tôi quản lý để biên dịch nó và nhập nó vào dự án của tôi nhưng nó bây giờ ném lên một lỗi mới! File "", dòng 89, trong File "F: \ máy tính \ Payrollv22 \ icon_rc.py", dòng 300, trong qInitResources() File "F: \ máy tính \ Payrollv22 \ ritch_rc.py", dòng 295, trong qInitResources QtCore.qRegisterResourceData (0x01, str (qt_resource_struct), str (qt_resource_name), str (qt_resource_data)) LoạiError: qRegisterResourceData (int, str, str, str): đối số 2 có kiểu không mong muốn 'str' – Thomas

1

Trong Pyqt5 lệnh này có thể được sử dụng Pyrcc5 input_file.qrc -o Out_file.py

Chúng tôi cần phải chuyển đổi tập tin đó QRC vào file python và sau đó nó có thể được nhập khẩu để mã của bạn

0

bạn có thể thử với pyside cũng như:

--- pyside-rcc -o input.qrc output.py

+1

trong tương lai khác với pyqt4 – eyllanesc

+0

Có, nhưng đây chỉ là một tùy chọn khác. –

0

bởi vì khi bạn cũng sử dụng pyuic5 để chuyển đổi giao diện người dùng thành py, tên tệp tài nguyên từ thanh UI.

sau đó sử dụng

Pyrcc5 input_file.qrc -o icons.py 

remove từ main_script.py

import icon_rc 

và sử dụng

import icons 

khi kêu gọi các biểu tượng thực tế từ các mô-đun biểu tượng, bạn phải nhìn vào tiền tố tệp qrc của bạn.

<RCC> 
    < qresource 
    prefix = "ico5" > 
    <file> plugin.png </file > 
    </qresource > 
</RCC > 

nếu tiền tố là ico5 sau đó bạn tải các biểu tượng với

QtGui.QIcon(":/ico5/plugin.png") 

và nếu tiền tố là, cho phép nói,

<RCC> 
    <qresource prefix="icons"> 

sau đó của nó:

QtGui.QIcon(":/icons/plugin.png") 
Các vấn đề liên quan