我正在尝试编写一个全屏运行kivy的应用程序.但这些是我的问题:
1)当我运行命令时:
#Config.set('graphics', 'fullscreen', 1)
Run Code Online (Sandbox Code Playgroud)
然后kivy似乎全职,但窗口背景图像周围有很多黑色空间.即使我拉长图像,kivy只是在显示图像时剪切图像.
2)当我运行此命令将窗口大小设置为我的屏幕大小时:
Config.set('graphics', 'width', '1366')
Config.set('graphics', 'height', '768')
Run Code Online (Sandbox Code Playgroud)
这种方式实际上给了我一个比全屏更好的结果,但是kivy返回的高度参数只有715而不是768,这是我告诉kivy使用的值(正如你在上面的Config.set()函数中看到的那样) .
我的屏幕分辨率是1366x768
如何解决这个问题并使我的kivy应用程序真正全屏显示?
非常感谢你
我试图QWidget通过重新实现鼠标移动来捕获光标坐标QWidget::mouseMoveEvent().启用鼠标跟踪后,当我将光标移动到主窗口小部件时,会生成鼠标移动事件.但是,当光标放在子窗口小部件上时,鼠标移动事件将停止触发.
鼠标按下/释放事件在光标位于同一子窗口小部件上时起作用,如果按住鼠标按钮,则移动事件将正确触发.我也尝试过对孩子们进行鼠标跟踪,但似乎没有什么区别.当鼠标位于子窗口小部件上时,如何触发鼠标移动事件?
这是演示问题的最小工作示例:
import sys
from PyQt4 import QtCore, QtGui
class MyWindow(QtGui.QWidget) :
def __init__(self):
QtGui.QWidget.__init__(self)
tabs = QtGui.QTabWidget()
tab1 = QtGui.QWidget()
tab2 = QtGui.QWidget()
tabs.addTab(tab1, "Tab 1")
tabs.addTab(tab2, "Tab 2")
layout = QtGui.QVBoxLayout()
layout.addWidget(tabs)
self.setLayout(layout)
self.setMouseTracking(True)
def mouseMoveEvent(self, event):
print 'mouseMoveEvent: x=%d, y=%d' % (event.x(), event.y())
app = QtGui.QApplication(sys.argv)
window = MyWindow()
window.setFixedSize(640, 480)
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
当鼠标移动到鼠标外时,QTabWidget按预期打印鼠标坐标.除非按住鼠标按钮,否则没有任何反应.
我一直在努力应对这一挑战,我已经设法利用以前的帖子和其他资源获得了一个好点.
我正在尝试将PIL.Image转换为QPixmap,以便我可以在PyQT GUI上使用QgraphicsScene进行显示.但是当显示图片时颜色已经改变了?有没有人遇到过这个问题?
我用于此的代码如下.
self.graphicsScene.clear()
im = Image.open('Penguins.jpg')
im = im.convert("RGBA")
data = im.tobytes("raw","RGBA")
qim = QtGui.QImage(data, im.size[0], im.size[1], QtGui.QImage.Format_ARGB32)
pix = QtGui.QPixmap.fromImage(qim)
self.graphicsScene.addPixmap(pix)
self.graphicsView.fitInView(QtCore.QRectF(0,0,im.size[0], im.size[1]), QtCore.Qt.KeepAspectRatio)
self.graphicsScene.update()
Run Code Online (Sandbox Code Playgroud)
我在Windows 7 64bit上,使用python 3.4与PyQt4和枕头3.1.0.我得到的结果可以在下面看到.
原始图片

GUI中显示的图片

提前致谢 :).
我最近更新到了Qt5 for Python的新版本.在这样做时,我一直在根据已经发生的一些显着变化来改变我的代码.我希望能够深入了解我创建的这一行代码.这感觉就像是解决从函数中获取string而不是a 的问题的一种肮脏方式tuple.(注意[0]在行尾)
filename = QtWidgets.QFileDialog.getOpenFileName(None, "Open " + key + " Data File", '.', "(*.csv)")[0]
Run Code Online (Sandbox Code Playgroud)
我想要 filename = {str}'C:/.././.../format.csv'
不 filename = <class 'tuple'>: ('C:/.././.../format.csv', '(*.csv)')
我的代码:
import pyttsx3
import random
engine = pyttsx3.init()
words = ['hello', 'word']
engine.say(random.choice(words)) #Say these words slower
Run Code Online (Sandbox Code Playgroud)
我不希望它变得非常慢,只是慢到足以让非母语人士轻松理解单词列表中的单词。另外,如果使用 pyttsx 模块无法做到这一点,您能否建议一个可以做到这一点的模块?
我在相同的conda虚拟环境中有PyQt5和OpenCV.
opencv-python==3.4.1.15
PyQt5==5.10.1
Run Code Online (Sandbox Code Playgroud)
每当我运行我的PyQt5应用程序时,我会收到许多警告:
objc[7992]: Class QCocoaPageLayoutDelegate is implemented in both /Users/alexryan/miniconda3/envs/qacker/lib/python3.5/site-packages/cv2/.dylibs/QtGui (0x109ae0290) and /Users/alexryan/miniconda3/envs/qacker/lib/python3.5/site-packages/PyQt5/Qt/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport (0x10a387f20). One of the two will be used. Which one is undefined.
objc[7992]: Class QCocoaPrintPanelDelegate is implemented in both /Users/alexryan/miniconda3/envs/qacker/lib/python3.5/site-packages/cv2/.dylibs/QtGui (0x109ae0308) and /Users/alexryan/miniconda3/envs/qacker/lib/python3.5/site-packages/PyQt5/Qt/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport (0x10a387f70). One of the two will be used. Which one is undefined.
objc[7992]: Class QCocoaApplicationDelegate is implemented in both /Users/alexryan/miniconda3/envs/qacker/lib/python3.5/site-packages/cv2/.dylibs/QtGui (0x109ae0010) and /Users/alexryan/miniconda3/envs/qacker/lib/python3.5/site-packages/PyQt5/Qt/plugins/platforms/libqcocoa.dylib (0x10c6ed480). One of the two will be used. Which one is undefined.
objc[7992]: Class QNSApplication is implemented in both …Run Code Online (Sandbox Code Playgroud) 所以我决定开始一起学习 Open CV 和 Python!
我的第一个项目是在相对静止的背景上检测移动物体,然后检测它们的平均颜色以对它们进行排序。至少有 10 个物体需要检测,我正在处理彩色视频。
到目前为止,我设法去除背景,识别轮廓(可选地获取每个轮廓的中心),但现在我正在努力获得每个轮廓内部的平均或平均颜色。有一些关于此类问题的主题,但其中大部分是用 C 编写的。显然我可以使用,cv.mean()但我无法获得一个工作掩码来提供此功能。我想这不是那么困难,但我被困在那里......干杯!
import numpy as np
import cv2
video_path = 'test.h264'
cap = cv2.VideoCapture(video_path)
fgbg = cv2.createBackgroundSubtractorMOG2()
while (cap.isOpened):
ret, frame = cap.read()
if ret==True:
fgmask = fgbg.apply(frame)
(contours, hierarchy) = cv2.findContours(fgmask, cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
for c in contours:
if cv2.contourArea(c) > 2000:
cv2.drawContours(frame, c, -1, (255,0,0), 3)
cv2.imshow('foreground and background',fgmask)
cv2.imshow('rgb',frame)
key = cv2.waitKey(1) & 0xFF
if key == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud) 我在尝试运行spyder时遇到这个问题
C:\ProgramData\Anaconda3\Scripts>spyder
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 22, in <module>
from PyQt5.QtWebEngineWidgets import QWebEnginePage
ImportError: DLL load failed while importing QtWebEngineWidgets: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
在处理上述异常的过程中,又出现了一个异常:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\Scripts\spyder-script.py", line 10, in <module>
sys.exit(main())
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\start.py", line 178, in main
from spyder.app import mainwindow
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 90, in <module>
from qtpy import QtWebEngineWidgets # analysis:ignore
File "C:\ProgramData\Anaconda3\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 26, in <module>
from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
ModuleNotFoundError: No …Run Code Online (Sandbox Code Playgroud) 假设我有文字成分:
Text {
text: "Hello"
wrapMode: Text.WordWrap
}
Run Code Online (Sandbox Code Playgroud)
如何使其可选?