如何修改下面的自定义QMessageBox的代码,以便知道用户是单击"是"还是"否"?
from PySide import QtGui, QtCore
# Create a somewhat regular QMessageBox
msgBox = QtGui.QMessageBox( QtGui.QMessageBox.Question, "My title", "My text.", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No )
# Get the layout
question_layout = msgBox.layout()
# Additional widgets to add to the QMessageBox
qlabel_workspace_project = QtGui.QLabel('Some random data window:')
qtextedit_workspace_project = QtGui.QTextEdit()
qtextedit_workspace_project.setReadOnly(True)
# Add the new widgets
question_layout.addWidget(qlabel_workspace_project,question_layout.rowCount(), 0, 1, question_layout.columnCount() )
question_layout.addWidget(qtextedit_workspace_project,question_layout.rowCount(), 0, 1, question_layout.columnCount() )
# Show widget
msgBox.show()
Run Code Online (Sandbox Code Playgroud) 执行安静的rsync时,记录任何错误或警告的正确方法是什么?
这是我目前从我的crontab运行的:
gsutil -m -q rsync -r -C /mount1/share/folder gs://my-bucket-1/folder/ > /mount2/share/folder/gsutil.log
Run Code Online (Sandbox Code Playgroud)
由于日志文件总是完全空的,而且我正在上传数TB的数据,我开始认为甚至错误和警告都被压制了.
我正在为 Sphinx/rst 编写一些文档。如何链接到本地磁盘上与您正在查看的页面相关的内容?
例如:
====================
My App documentation
====================
The official My App documentation can be found here:
https://myapp.com/docs
A local mirror is available:
../../_static/docs_mirror/index.html
Run Code Online (Sandbox Code Playgroud)
在我的机器上,_static 文件夹位于:
file:///Users/fredrik/code/repos/myapp/docs/_static
Run Code Online (Sandbox Code Playgroud)
...但我不想对该路径进行硬编码,因为对于已下载克隆存储库的另一个用户而言,该路径可能与该路径不同。
我有一个thing用docker compose项目调用的目录:
thing
??? Dockerfile
??? docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml的内容:
master:
build: .
Run Code Online (Sandbox Code Playgroud)
当我docker-compose build在此文件夹中运行时,这将生成一个名为的docker 镜像thing_master.我想在docker-compose.yml中指定我的图像的另一个名称.这可能吗?
- 我知道我可以运行docker-compose -p [image_name] build或设置环境变量COMPOSE_PROJECT_NAME,但这不是我想做的.
我正在尝试查询Version我希望将对象返回到其max_version_number属性等于的位置version_number:
latest_versions = \
dbSession.query(Version).filter(Version.max_version_number == Version.number_version)
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
Traceback (most recent call last):
...
...
filter(Version.max_version_number == Version.version_number).\
File "c:\python27\lib\site-packages\sqlalchemy\orm\query.py", line 2588, in all
return list(self)
File "c:\python27\lib\site-packages\sqlalchemy\orm\query.py", line 2736, in __iter__
return self._execute_and_instances(context)
File "c:\python27\lib\site-packages\sqlalchemy\orm\query.py", line 2751, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 914, in execute
return meth(self, multiparams, params)
File "c:\python27\lib\site-packages\sqlalchemy\sql\elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", …Run Code Online (Sandbox Code Playgroud) 我想创建两个不同的记录器,这就是我所拥有的:
import logging
def logger(logger_name, level):
"""Create logger with given name and level"""
# Set up logger
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
# print(logger.handlers)
formatter = logging.Formatter('%(levelname)-8s %(asctime)s %(message)s')
handler = logging.StreamHandler()
handler.setFormatter(formatter)
# Set level
handler.setLevel(level)
# Add handlers to logger
logger.addHandler(handler)
return logger
LOGGER1 = logger(logger_name='main_app', level=logging.INFO)
LOGGER2 = logger(logger_name='main_app.module', level=logging.DEBUG)
LOGGER1.info('one')
LOGGER2.info('two')
LOGGER1.info('three')
Run Code Online (Sandbox Code Playgroud)
这是记录的内容:
INFO 2017-01-25 11:49:45,209 one
INFO 2017-01-25 11:49:45,209 two
INFO 2017-01-25 11:49:45,209 two
INFO 2017-01-25 11:49:45,210 three
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
如何防止LOGGER2多次记录同一事物?
我希望Get-ChildItem -force在我输入时被执行,ll并且我的profile.ps1:
New-Alias -Name ll -Value Get-ChildItem -force
Run Code Online (Sandbox Code Playgroud)
但是,当我输入时ll,我可以看到该-force参数没有被使用。我究竟做错了什么?
编辑:我真正希望实现的是显示文件夹中的所有文件,即使它们是隐藏的。我希望将其绑定到ll.
如何在写入文件时实时分析通过管道传输到文件的命令的输出?
这是我到目前为止所拥有的:
with open('output.log', 'w') as out:
command = ['pg_dump', 'myDB']
p = subprocess.Popen(cmd, stdout=out, stderr=subprocess.STDOUT)
for line in iter(p.stdout.readline, b''):
sys.stdout.flush()
print(">>> " + line.rstrip())
Run Code Online (Sandbox Code Playgroud)
但这会产生以下错误:
Traceback (most recent call last):
File "pipe-to-file.py", line 95, in <module>
for line in iter(p.stdout.readline, b''):
AttributeError: 'NoneType' object has no attribute 'readline'
Run Code Online (Sandbox Code Playgroud)
为什么p.stdout等于None这里?
我有一个启用了 ExtendedSelection 的表:
table.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
Run Code Online (Sandbox Code Playgroud)
当我关闭 UI 时,我使用 QSettings 来记住任何选定的行。当我重新打开我的 UI 时,我希望它自动重新选择行。
我有这个,但这最终只选择了最后选择的行:
QSETTINGS = [1, 2, 3] # Indicates row 1, 2 and 3 should be selected
for row in xrange(table.rowCount()):
table_item = table.item(row, 1)
row_data = table_item.data(QtCore.Qt.UserRole)
row_id = row_data
if row_id in QSETTINGS:
table.selectRow(row) # This ends up only making one row selected
Run Code Online (Sandbox Code Playgroud)
table.selectRow(row)为了确保选择不止一行,我应该使用什么?
编辑
在我最初的问题中,我说我正在使用QtGui.QAbstractItemView.MultiSelection. 然而,我不是。我正在使用QtGui.QAbstractItemView.ExtendedSelection,这也是为什么我的行选择代码显然不起作用的原因。通过暂时切换到MultiSelection,选择行然后切换回ExtendedSelection,我的问题中的代码效果很好。
当你运行时,brew install qt5你将获得最新版本(现在是5.7.0).一周前左右,当我运行此命令时,安装了5.6.1-1版本.
现在我需要在另一台机器上再次安装这个5.6.1-1版本.我怎么能通过brew来做到这一点?(试图避免长编译时间)
A brew search qt5未显示此先前版本:
$ brew search qt5
pyqt5 qt5 ?
homebrew/versions/qt52 homebrew/versions/qt55
Run Code Online (Sandbox Code Playgroud) python ×5
pyside ×2
containers ×1
docker ×1
gsutil ×1
homebrew ×1
macos ×1
postgresql ×1
powershell ×1
psycopg2 ×1
pyqt ×1
pyqt4 ×1
pyqt5 ×1
qt5 ×1
sqlalchemy ×1