小编fre*_*rik的帖子

如何从自定义QMessageBox捕获按钮单击?

如何修改下面的自定义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)

python pyqt pyside

4
推荐指数
1
解决办法
3780
查看次数

如何使用gsutil rsync执行日志记录

执行安静的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的数据,我开始认为甚至错误和警告都被压制了.

google-cloud-storage gsutil

4
推荐指数
1
解决办法
2339
查看次数

如何从 Sphinx 文档创建到本地 index.html 的链接?

我正在为 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)

...但我不想对该路径进行硬编码,因为对于已下载克隆存储库的另一个用户而言,该路径可能与该路径不同。

restructuredtext python-sphinx

4
推荐指数
1
解决办法
5067
查看次数

如何在docker-compose.yml中定义docker镜像名称?

我有一个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,但这不是我想做的.

containers docker docker-compose

3
推荐指数
1
解决办法
1439
查看次数

sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)无法适应类型'属性'

我正在尝试查询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)

python postgresql sqlalchemy psycopg2

3
推荐指数
1
解决办法
7339
查看次数

为什么我的记录器多次记录相同的东西?

我想创建两个不同的记录器,这就是我所拥有的:

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多次记录同一事物?

python

3
推荐指数
1
解决办法
90
查看次数

如何为 New-Alias 命令的值提供参数?

我希望Get-ChildItem -force在我输入时被执行,ll并且我的profile.ps1

New-Alias -Name ll -Value Get-ChildItem -force
Run Code Online (Sandbox Code Playgroud)

但是,当我输入时ll,我可以看到该-force参数没有被使用。我究竟做错了什么?

编辑:我真正希望实现的是显示文件夹中的所有文件,即使它们是隐藏的。我希望将其绑定到ll.

powershell

3
推荐指数
1
解决办法
1374
查看次数

当管道传输到文件时分析 subprocess.Popen 的输出

如何在写入文件时实时分析通过管道传输到文件的命令的输出?

这是我到目前为止所拥有的:

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这里?

python

2
推荐指数
1
解决办法
5718
查看次数

如何在QTableWidget中选择多行?

我有一个启用了 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,我的问题中的代码效果很好。

python pyqt4 pyside pyqt5

2
推荐指数
1
解决办法
9917
查看次数

如何通过自制软件安装Qt 5.6.1-1?

当你运行时,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)

macos homebrew qt5

2
推荐指数
1
解决办法
4282
查看次数