如果您对time.sleep感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于time.sleep的详细内容,我们还将为您解答和BackGroundWindowsPyQt5的相
如果您对time.sleep感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于time.sleep的详细内容,我们还将为您解答和BackGround Windows PyQt5的相关问题,并且为您提供关于''windowBackground'' 无法找到问题、的background-image和background-color层次问题_html/css_WEB-ITnose、android:attr / selectableItemBackground在白色windowBackground上不起作用、background-origin和background-clip的区别_html/css_WEB-ITnose的有价值信息。
本文目录一览:- time.sleep()和BackGround Windows PyQt5
- ''windowBackground'' 无法找到问题
- 的background-image和background-color层次问题_html/css_WEB-ITnose
- android:attr / selectableItemBackground在白色windowBackground上不起作用
- background-origin和background-clip的区别_html/css_WEB-ITnose
time.sleep()和BackGround Windows PyQt5
鉴于此,我从PyQt5模块开始,我仍在慢慢了解其背后的逻辑。就是说,我有一个我找不到答案的问题,希望您能为我提供帮助。
我有这个脚本:
import sys,socket,time
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from io import BytesIO as by
class loadGame(QWidget):
wLoadDisplay = 768
hLoadDisplay = 576
wLoadBar = 650
hLoadBar = 40
pbarCSS = """
QProgressBar
{
font-size: 20px;
font-weight: bold;
background-color: #FFF;
border: 4px solid #000;
text-align: center;
}
QProgressBar::chunk
{
background-color: #FF0000;
width: 1px;
}
"""
labelCSS = """
QLabel
{
font-size: 20px;
font-weight: bold;
background-color: #FFF;
border: 4px solid #000;
}
"""
fileResource = []
imgResource = []
vidResource = []
audResource = []
diaResource = []
txtResource = []
internetConnection = False
def __init__(self,*args,**kwargs):
QWidget.__init__(self,**kwargs)
self.outputFile = by()
self.pbar = QProgressBar(self)
self.pbar.setGeometry((self.wLoadDisplay / 2 - self.wLoadBar / 2),(self.hLoadDisplay / 2 - self.hLoadBar * 2),self.wLoadBar,self.hLoadBar)
self.pbar.setFormat("%v/%m")
self.pbar.setValue(0)
self.pbar.setStyleSheet(self.pbarCSS)
self.label = QLabel(self)
self.label.setGeometry((self.wLoadDisplay / 2 - self.wLoadBar / 2),(self.hLoadDisplay / 2),self.hLoadBar)
self.label.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)
self.label.setStyleSheet(self.labelCSS)
self.setGeometry(0,self.wLoadDisplay,self.hLoadDisplay)
oImage = QImage("bgloading.png")
sImage = oImage.scaled(QSize(self.wLoadDisplay,self.hLoadDisplay))
palette = QPalette()
palette.setBrush(10,QBrush(sImage))
self.setPalette(palette)
qtRectangle = self.frameGeometry()
centerPoint = QDesktopWidget().availableGeometry().center()
qtRectangle.moveCenter(centerPoint)
self.move(qtRectangle.topLeft())
self.run()
def run(self):
self.checkConnection()
if self.internetConnection:
self.checkUpdate()
else:
pass
def checkConnection(self):
self.objectChange("Check Internet Connection",1)
try:
host = socket.gethostbyname("www.google.it")
s = socket.create_connection((host,80),2)
self.internetConnection = True
except:
pass
self.count()
self.reset()
def checkUpdate(self):
pass
def objectChange(self,object,n):
self.label.setText(object)
self.pbar.setMaximum(n)
def count(self):
self.pbar.setValue(self.pbar.value() + 1)
def reset(self):
time.sleep(2)
self.pbar.setMaximum(0)
self.pbar.setValue(0)
self.label.setText("...")
if __name__ == '__main__':
loadDisplay = QApplication(sys.argv)
load = loadGame()
load.show()
sys.exit(loadDisplay.exec_())
在网上搜索时,我发现问题与“ time.sleep(2)”有关,也就是说,该指令阻止了直到两秒钟后才出现的窗口。
事实是,我想花一两秒钟的时间来显示该小节的完成,然后重置并继续执行“ def run(self)”中包含的下一条语句。
因此,有没有一种方法可以使该暂停而不使用“时间”模块?我不知道,也许是QTimer?我再说一遍,我对PyQt5不太了解,所以我不知道QTimer是否可以做同样的事情。
如果QTimer无法做到这一点,还有其他可能吗?我想避免使用PyQt5的“线程”,因为我读到可以做到这一点,但是我想避免仅将其用于Timer模块。
我只添加一个问题,以避免打开另一个问题并发布相同的脚本。
在脚本中,通过“ oImage = QImage(“ bgloading.png”)“等完成窗口背景。
但是,我注意到,如果发现文件名错误或文件本身丢失,则背景为黑色。因此,如果有任何错误(名称错误或文件丢失),则可以设置背景,例如白色?
因为当窗口加载“此错误”时,不会引发任何异常并且脚本会继续。
编辑:我已经编辑了发布的脚本,以便它仅包含PyQt5部分,因此您可以尝试一下。显然只有图像丢失了,可以用任何图像替换。
不幸的是,我忘记写报告“
self.set_display()”的部分是为了表明一旦PyQt5执行的工作被终止,它将被关闭(仍然丢失,因为使用Pycharm会关闭执行)程序中脚本的代码)。该脚本将通过调用“
self.set_display()”函数继续。
Edit2:我尝试按照建议替换“
time.sleep(2)”,但得到的结果相同。问题是,如果我不暂停,窗口将正常显示,但是重置发生得太快,用户看不到进度栏的填充。相反,如果我输入“
time.sleep(2)”或建议的解决方案,则该窗口仅在暂停后(即已发生重置时)出现。
''windowBackground'' 无法找到问题
主题设置
android中可以通过对activity主题进行设置,可以得到一些特殊的效果,如背景透明、无标题、全屏等,android本身提供了一些主题供开发者选择,具体方法即在manifest文件中相应的<activity>标签下添加android:theme="@android :style/..."即可。,如果要自定义主题,需要在res/values目录下添加style.xml文件,在其中定义所需的属性。
遇到的问题:
应用中需要将一个activity的背景设置为半透明效果,但系统本身提供的选择只有全透明效果,因此需要自定义。
定义activity背景色 <item name="windowBackground">#99cccccc</item>,这样写会报出两种错误,
(1) No resource found that matches the given name: attr ''windowBackground'',即指定的name找不到,这条有时候会通过,但背景不会改变,是漆黑的一片。
(2) Color types not allowed (at ''android:windowBackground'' with value ''#99cccccc''),即对color不能这么写
解决办法:
<item name="android:windowBackground">@color/transparent_background</item>
即name里要添加android:,color要专门在colors.xml文件中具体定义
分析:
<item name="windowBackground">这种写法是在仿照系统api中的style写的,在目录\android-sdk\platforms\android-8\data\res\values下的themes.xml文件是系统定义的各种主题属性,例如
<!-- Window attributes --> <item name="windowBackground">@android:drawable/screen_background_dark</item> <item name="windowFrame">@null</item> <item name="windowNoTitle">false</item> <item name="windowFullscreen">false</item> <item name="windowIsFloating">false</item> <item name="windowContentOverlay">@android:drawable/title_bar_shadow</item> <item name="windowShowWallpaper">false</item> <item name="windowTitleStyle">@android:style/WindowTitle</item> <item name="windowTitleSize">25dip</item> <item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item> <item name="android:windowAnimationStyle">@android:style/Animation.Activity</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustUnspecified</item>
不知道为什么系统文件就没有问题。。。总之自定义的话对这些属性值的name需添加android:,形如<item name="android:windowBackground">
的background-image和background-color层次问题_html/css_WEB-ITnose
设置成这样,但背景颜色总是会覆盖在背景图片上,怎么能让背景图片在背景颜色上从而不受背景颜色影响?
回复讨论(解决方案)
你路径写错了呗。
背景图片,会覆盖背景色的,看下路径,在调试工具里,看下这个图片,是不是成功加载过来了。
图片路径不对吧
你路径写错了呗。
背景图片,会覆盖背景色的,看下路径,在调试工具里,看下这个图片,是不是成功加载过来了。
很确定背景图片已经加载了,和背景颜色叠加在一起出现了奇特的效果。
你确定加载了,那就看下,body下的第一个子元素,是不是占据整个body的,是不是你在这个子元素上面,设置了颜色。
再仔细检查下你的代码,颜色覆盖背景图片。还真是没有见过。
你把body的颜色去掉,看看会不会出背景色,就能确定,是不是背景图片被颜色覆盖了。
background:#069 url(pics/bg.png) no-repeat center center;
你的背景图片是png格式的,不要告诉我,撒是png这个你不懂
你的背景图片是png格式的,不要告诉我,撒是png这个你不懂
好吧,是图片半透明了
android:attr / selectableItemBackground在白色windowBackground上不起作用
我想用
?android:attr/selectableItemBackground
我的recyclerview的项目.不幸的是,它不起作用.我的styles.xml文件中包含以下行:
<item name="android:windowBackground">@color/white</item>
没有这条线,我可以看到波纹,这意味着背景os由于窗口背景很白而无法正常工作.如何强制在我的白色背景上出现涟漪效果?
这是recyclerview项目的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/brand_row"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:background="?android:attr/selectableItemBackground"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="@color/modelTitelColor"
android:text/>
<TextView
android:id="@+id/numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="@color/cardview_background"
android:texthttps://www.jb51.cc/tag/nor/" target="_blank">normal"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/divider"/>
</LinearLayout>
我的minSdkVersion是14
解决方法:
在我的styles.xml中
Theme.AppCompat.NoActionBar
作为父主题.更改为
style name="CustomMaterialTheme" parent="Theme.AppCompat.Light.NoActionBar"
解决了问题.现在我可以看到效果了.
background-origin和background-clip的区别_html/css_WEB-ITnose
background-origin和background-clip是css3内新增加的属性,其实一个是对背景图片的放置,另一个是对背景图片的剪裁。
background-origin和background-clip的选择都一样:content- box,padding-box,border-box(要注意在火狐和Chrome和Safari中,需要使用私有属性,加上-mox-和 -webkit-)
在区别之前,先说明:
这是常见的盒子模型,content、padding、border、margin外围的边线在图中被标识出来,他们在区别3项选择(content- box,padding-box,border-box)中起到了十分重要的作用。
立即学习“前端免费学习笔记(深入)”;
origin的翻译过来时原始的意思。顾名思义,所以background-origin是用来决定图片的原始起始位置,即你可以选择背景图片是从内容区域开始显示,还是内边距,还是边框。
background-origin:margin background-origin:padding background-origin:content
我们看到,当background-origin的值为content-box时,首先会让背景图片的左上角和内容边缘左上角对齐;padding-box时,则会让背景图片的左上角和内边距的左上角对齐。以此类推。可见background-origin的值的确是决定背景图片开始从哪个区域开始显示。
另外,background-origin默认的起始位置在哪呢?这里就不演示了,但要记住??是padding。
接下来介绍background-clip,它的作用为将背景图片做适当的裁剪,以适应需要。当然这里并不是真正意义上的把图片给裁剪了,而是根据属性值。把图片的某些部位做适当的隐蔽。
怎样个剪裁法呢。根据你设置的盒子部位,那么图片在这个部位的外边缘以外的部分都会不可见。
经测试,在火狐、chrome、ie9+浏览器均表现为上图。
由此可见,虽然图片是从顶着边框的左上角进行定位,但是裁剪属性background-clip的属性是设置为content-box,所以只有content区域的内容看得见,也就是只要是在content之外的图片内容都被隐蔽掉了。
如果此篇文章有帮到您,请您帮帮忙动个手指,推荐一下此文吧~谢谢拉~^^
关于time.sleep和和BackGround Windows PyQt5的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于''windowBackground'' 无法找到问题、的background-image和background-color层次问题_html/css_WEB-ITnose、android:attr / selectableItemBackground在白色windowBackground上不起作用、background-origin和background-clip的区别_html/css_WEB-ITnose等相关知识的信息别忘了在本站进行查找喔。
本文标签: