GVKun编程网logo

time.sleep()和BackGround Windows PyQt5

19

如果您对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

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'' 无法找到问题

''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文件是系统定义的各种主题属性,例如

  1. <!-- 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">

<body>的background-image和background-color层次问题_html/css_WEB-ITnose

的background-image和background-color层次问题_html/css_WEB-ITnose

body { background-image:url(pics/bg.png); background-repeat:repeat; background-color:#069;}
登录后复制

设置成这样,但背景颜色总是会覆盖在背景图片上,怎么能让背景图片在背景颜色上从而不受背景颜色影响?

回复讨论(解决方案)

你路径写错了呗。

背景图片,会覆盖背景色的,看下路径,在调试工具里,看下这个图片,是不是成功加载过来了。

图片路径不对吧

你路径写错了呗。

背景图片,会覆盖背景色的,看下路径,在调试工具里,看下这个图片,是不是成功加载过来了。
很确定背景图片已经加载了,和背景颜色叠加在一起出现了奇特的效果。

你确定加载了,那就看下,body下的第一个子元素,是不是占据整个body的,是不是你在这个子元素上面,设置了颜色。

再仔细检查下你的代码,颜色覆盖背景图片。还真是没有见过。

你把body的颜色去掉,看看会不会出背景色,就能确定,是不是背景图片被颜色覆盖了。

background:#069 url(pics/bg.png) no-repeat center center;

你的背景图片是png格式的,不要告诉我,撒是png这个你不懂

你的背景图片是png格式的,不要告诉我,撒是png这个你不懂
好吧,是图片半透明了

android:attr / selectableItemBackground在白色windowBackground上不起作用

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的区别_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等相关知识的信息别忘了在本站进行查找喔。

本文标签: