考虑以下python文件,有什么方法可以在导入时将layout_height=0dp
传递给其他模块吗? (不希望拨打layout_width=0dp
)
cl arguments
答案 0 :(得分:2)
正确的方法当然是将A.py更改为具有import QtQuick 2.7
import QtQuick.Controls 2.4
Action {
/* Custom property */
property var keySequence
shortcut: keySequence
}
函数,如其他答案中所建议的那样,将参数作为参数。
所以您确实应该使用:
A.py:
import QtQuick 2.7
import QtQuick.Controls 2.4
Button {
/* Disabled Shortcut */
Shortcut {
id: dummyShortcut
enabled: false
sequence: action.keySequence
}
hoverEnabled: true
ToolTip.visible: hovered
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.text: dummyShortcut.nativeText
}
B.py:
import QtQuick 2.7
import QtQuick.Controls 2.4
ApplicationWindow {
visible: true
CustomAction {
id: myAction
keySequence: StandardKey.Open
}
ToolTipButton {
id: myButton
action: myAction
text: "Trigger my action"
}
}
话虽这么说,main
是可变的,所以可以在调用# A.py
def main(args):
# -- resolve command line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, required=True)
parser.add_argument('--out_file', type=str, required=True)
args = parser.parse_args(args)
# -- do some operations
# -- save results in `out_file`
if __name__ == "__main__":
main(sys.argv)
之前对其进行更改。
所以这是有可能的(即使有些 hacky ):
A.py:
import A
import sys
A.main([sys.argv[0], '--name', 'NAME_X', '--out_file', 'FILE.YY'])
B.py:
sys.argv
答案 1 :(得分:1)
# A.py
def main():
# -- resolve command line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, required=True)
parser.add_argument('--out_file', type=str, required=True)
args = parser.parse_args()
# -- do some operations
# -- save results in `out_file`
return out_file
if __name__ == "__main__":
main()
#B.py
import A
def main():
out_file = A.main()
# how to pass `name` and `out_file` in main?
答案 2 :(得分:1)
在a.py
中,您需要将main
内容移至某个函数,例如def main()
。我还向arguments=None
添加了一个main()
参数,该参数从b.py
接收参数。
# a.py
import argparse
def main(arguments=None):
# -- resolve command line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, required=True)
parser.add_argument('--out_file', type=str, required=True)
args = parser.parse_args(arguments)
# -- do some operations
# -- save results in `out_file`
if __name__ == "__main__":
main()
然后您可以像这样在b.py
中将参数传递给该函数
#b.py
from a import main
main(['--name', 'some_name', '--out_file', 'file.txt'])