[python] 3. pyqt5乱搞,试试子鲜橙,左右布局

二、PyQt5实现Python界面设计_QLayout(界面分布器) 在窗体设计中,位置的摆放是一个最基本且关键的步骤,它直接影响到整个窗体的美观,在PyQt5中有两种方式可以进行控件的位置摆放,一种是绝对定位,一种十分布管理器。绝对定位的好处在于,可以根据坐标准放置在需要的位置上,一般使用Move()函数,其缺点就是无法随着窗体大小的变化而变化而布局管理器的优点则体现在控件可以跟随窗口大小的变化做自动的适应,自动的更新界面控件的大小。......... 阅读详情

版本:

pyqt 5.9 pycharm+anaconda win10

效果:

思路:

总体使用网格布局,左侧用垂直布局,右侧用栈布局

按钮绑定切换事件,根据按钮id决定切哪个

子界面1创建子线程,激活自定义信号刷新界面,这招超实用!

 

实现:

其实就两个.py  具体看注释

主界面的py

from PyQt5.QtCore import QThread ,  pyqtSignal,  QDateTime
from PyQt5.QtWidgets import QApplication,  QDialog,  QLineEdit\
    ,QWidget,QGridLayout,QPushButton,QLabel,QStyleFactory,QHBoxLayout,QVBoxLayout,QFrame,QStackedLayout
import time
import sys
import random

from son1 import Panel2,Panel1,Panel3


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('PyQt 5界面实时更新例子')
        self.resize(1300, 700)
        #总布局
        self.layout=QGridLayout(self)
        self.leftfuck=QWidget(self)     #空物体
        self.rightfuck=QWidget(self)    #空物体
        self.left=QVBoxLayout(self)     #左侧菜单栏垂直布局
        self.right=QStackedLayout(self) #右侧切换采用栈布局

        #添加左侧按钮1 2 3  绑定切换事件switchs  设置id
        self.btn1 = QPushButton("menu1", self)
        self.btn2 = QPushButton("menu2", self)
        self.btn3 = QPushButton("menu3", self)
        self.btn1.clicked.connect(self.switchs)
        self.btn1.setObjectName("btn1")
        self.btn2.clicked.connect(self.switchs)
        self.btn2.setObjectName("btn2")
        self.btn3.clicked.connect(self.switchs)
        self.btn3.setObjectName("btn3")

        #左侧锤子布局添加按钮 1 2 3
        self.left.addWidget(self.btn1)
        self.left.addWidget(self.btn2)
        self.left.addWidget(self.btn3)

        self.leftfuck.setLayout(self.left)
        self.rightfuck.setLayout(self.right)
        self.layout.addWidget(self.leftfuck,0,0)
        self.layout.addWidget(self.rightfuck,0,1,1,4) #设置水平跨4行

        self.initUI()

    def initUI(self):
        #声明Panel (在son1.py里面 )
        self.frame1 = Panel1()
        self.frame2 = Panel2()
        self.frame3 = Panel3()

        #嵌套布局加入Panel 123
        self.right.addWidget(self.frame1)
        self.right.addWidget(self.frame2)
        self.right.addWidget(self.frame3)
        QApplication.processEvents() #这个还没起作用,可加可不加,作用是让耗时过程(io) 先处理,主界面继续刷新

    def switchs(self): #根据id 切换页面
        dic={"btn1":0,"btn2":1,"btn3":2}
        index=dic[str(self.sender().objectName())]
        self.right.setCurrentIndex(index)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = Window()
    win.show()

    sys.exit(app.exec_())

 

子界面的py ,QFrame 是QWidget的拓展类

from PyQt5.QtCore import QThread ,  pyqtSignal,  QDateTime
from PyQt5.QtWidgets import QApplication,  QDialog,  QLineEdit\
    ,QWidget,QGridLayout,QPushButton,QLabel,QStyleFactory,QHBoxLayout,QVBoxLayout,QFrame
import time
import sys
import random

class BackendThread(QThread):    #线程类
    # 通过类成员对象自定义信号
    update_date = pyqtSignal(str)

    # 处理业务逻辑
    def run(self):
        while True:
            data = QDateTime.currentDateTime()
            currTime = data.toString("yyyy-MM-dd hh:mm:ss")  #修改时间
            self.update_date.emit(str(currTime))   #每秒激活,发射一次信号
            time.sleep(1) #至少加0.01,不然会卡死



class Panel1(QFrame):
    def __init__(self):
        super().__init__()
        self.input = QLineEdit(self)
        self.input.resize(400, 30)
        self.initUI()
    def initUI(self):
        self.setStyleSheet("QFrame{background-color:blue}")  # ""里面用类css语法表示样式
        # 创建线程
        self.backend = BackendThread()
        # 连接信号   自定义信号update_date 绑定 物体事件handleDisplay
        self.backend.update_date.connect(self.handleDisplay)
        # 开始线程
        self.backend.start()

    def handleDisplay(self, data):
        self.input.setText(data)

class Panel2(QFrame):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setStyleSheet("QFrame{background-color:red}")

class Panel3(QFrame):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setStyleSheet("QFrame{background-color:yellow}")

 

PyQt5可视化编程-布局管理 在一个GUI程序里,布局是一个很重要的方面。布局就是如何管理应用中的元素和窗口。有两种方式可以搞定:绝对定位和PyQt5的layout类 阅读详情

相关推荐

Qt Designer 设计PyQt5界面时自适应设置

最近在学习PyQt5,学习推荐知乎专栏PyQt5图形界面编程 主要是有Gif看他们是怎么用Qt Designer 设计的。 今天遇到了一个问题,就是在使用布局的时候,一直没有找到自适应选项。就是如果背景缩小时,前面的控件会被遮住,如下图右边: 最终找到这篇文章,有了思路Qt Creator 窗体控件自适应窗口大小布局 1. 全局自适应 在空白的地方点击右键》布局》垂直布局, 不过参...

8960

Python 小白从零开始 PyQt5 项目实战(5)布局管理

本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。 什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。 布局管理就是管理图形窗口中各个部件的位置和排列。图形窗口中的大量部件也需要通过布局管理,对部件进行整理分组、排列定位,才能使界面整齐有序、美观大方。 本文具体介绍基本的水平布局、垂直布局、栅格布局、表格布局和进阶的嵌套布局和容器布局,最后通过案例带小白创建一个有型的图形布局窗口。

youcans的博客 7330

Python QT5设计UI界面教程

简介:PyQT5开发常用知识,零基础上手,需配合我之前写的博文,配置好QT设计工具和ui文件转py文件的工具。

yue200403的博客 2万+

pyqt5 加载UI_form

pyqt5 加载UI_form

qq_33095999的博客 755

fuck-shit-up-bookmarklet:在你正在阅读的任何东西中撒一些“乱搞”

该死的书签 这是一个 Chrome 扩展程序,可以在您正在阅读的任何内容中加入一些“操蛋”。 (该项目最初是一个书签,但不能有 1.7 MB 的书签。) 如果你只是想使用它,你可以忽略其余的部分。 安装 克隆这个 repo。 运行make build来构建 bookmarklet.js。 转到 Chrome 中的扩展程序。 勾选“开发者模式”。 点击“Load unpacked extension”并指向这个 repo 中的chrome目录。 结构 background.js在(等待它)后台等待以响应用户点击扩展程序的按钮。 发生这种情况时,它会加载要在当前选项卡页面上下文中执行的 bookmarklet.js。 bookmarklet.js抓取 <body> 的所有没有孩子的孩子,然后通过 fuck-shit-up 模块运行他们的文本,并用结果替换他们的 innerText。

4G LTE 与 5G 无线网络规划对比:从 BBU/RRU 到 CU/DU/AAU 的架构演进解析

本文深度解析4G LTE与5G无线网络架构的演进差异,从BBU/RRU分立式架构到CU/DU/AAU三级重构,揭示移动通信代际跃迁的技术本质。重点对比了网络规划中的覆盖能力、容量规划、传输网络等九大维度,为通信工程师提供实用的技术对照手册,助力5G网络高效部署。

weixin_32821533的博客 288

10. PyQt5布局管理器

QBoxLayout盒式布局管理器,可以创建水平或垂直方向的布局管理器,使子部件在水平方向或者垂直方向排成一列,它将所有的空间分成一行盒子,然后将每个部件放入一个盒子中。通常使用的是该类的两个子类QHBoxLayout和QVBoxLayout,因为子类有比较方便的构造函数。

hubing_hust的专栏 1万+

高通Camera IFE时钟配置

高通Camera IFE时钟配置中的minHorizontalBlanking和minVerticalBlanking配置计算方法

一个懒癌的驱动工程师的随笔分享 6168

PyQt5布局管理

一、GUI布局管理简介 PyQt5中进行界面布局管理的方法主要由两种,一种是绝对定位,一种是使用布局管理器。Qt中使用绝对定位的布局方式无法自适应窗口的变化,因此Qt中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小。 QLayout是Qt中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器。布局管理器不是界面组件,而是界面组件的定位策略;任意容器类型的组件都可以指定布局管理器;同一个布局管理器管理

我不是码农的博客~~~ 1210

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9802

从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》

DDIM发表在ICRL2021上,是DDPM重要的改进之一,能显著提高DDPM的样本质量、减少采样时间,并且能显式控制插值,已经被广泛应用到现在的Diffusion Models上。这篇博客和大家一起详细解读一下DDIM,认识这一伟大的模型。.........

沉迷单车的追风少年 1万+

pyqt5 边框栏的嵌套布局,大小随窗口变化

前言: 今天想用边框栏QDockWidget实现简单的界面自由布局,实现过程中发现界面的中间区域始终存在,并且左右布局的边框栏不会随窗口的大小自动变化。在网上搜索一番,发现一篇高度吻合需求的文章,但是是基于C++,但是可以借用。因此记录下在python下的实现。 参考文献: 1.https://blog.csdn.net/lengyuezuixue/article/details/80992476?utm_medium=distribute.pc_relevant.none-task-blog-BlogCo

dracula000的博客 2589

【QT开发】web开发,内嵌网页展示和交互工具QWebEngineView类详解及实战应用

QWebEngineView 类为 Qt 应用提供了强大的网页展示和交互能力。通过合理运用其方法、属性和事件,能够创建出功能丰富、用户体验良好的网页浏览界面。在开发过程中,要注意处理常见问题,以确保网页的正常展示和交互效果。

科技改变人类,技术成就未来 2004

python图形化界面设计例题_实战!在Python中制作精美的图形用户界面

在默认情况下,我们使用PyQt5创建出来的窗口和部件都是自带的默认样式,虽然谈不上很丑,但是也毫无美感可言。其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化图形界面的目的。本篇文章中,我们就通过一个实际的例子,使用QSS和PyQt5的配置属性,实现图形用户界面的美化工作。首先上效果图:使用到的图片素材有9张音乐的封面图片:需要素材的小伙伴可...

weixin_39862484的博客 1724

Qt之QMqtt 发送图片数据

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议;MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛;在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT);其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用;

Ilson_的博客 1437

《YOLOv8-seg改进》专栏指导书册 &手把手创新教程

学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研;1)手把手教你如何训练YOLOv8-seg;2)模型创新,提升分割性能;3)独家自研模块助力分割;

会AI的学姐 3813

PyQt界面:左右界面由于控件太多不协调

在编写软件时,有左右两个子界面,都设置为网格布局;左界面是菜单,右界面是每个菜单对应的内容。当右界面的空间太多时,导致左界面的空间缩小,不协调。加了设定宽度的代码的办法解决。

有塔耶奥多的专栏 483

【20】方案管理器

方案管理器是Excel中一个非常强大且灵活的工具,适合用于多情景分析和比较。在复杂的决策过程中,它可以帮助用户快速管理和评估不同变量组合下的结果,从而优化决策过程。

学习,输出==》再学习再输出 1585

Pyqt5部分学习笔记2——qtdesigner生成的ui布局或者py布局文件的调用

1、ui动态布局文件的使用 简单用法 from PyQt5.uic import loadUi app = QApplication([]) ui = loadUi('layout.ui') ui.show() app.exec_() 实际开发用法 from PyQt5.QtWidgets import QApplication from PyQt5.uic import loadUi class MyMainwin: def __init__(self): # 从文件中加载

holwell的博客 902

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

PYQT5(23)-图形和特效-窗口风格

设置窗口风格 代码示例 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5 import QtCore from PyQt5.QtGui import * class AppWidget(QWidget): def __init__(self, parent=None): super(AppWidget, self).__init__(parent) s

qq_37609345的博客 1160

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python实现按钮切换界面_PyQt实现界面翻转切换效果

PyQt实现界面翻转切换效果是用qt的场景功能来实现的,用到了QGraphicsView,QGraphicsLinearLayout,QGraphicsWidget等有关qt场景的库。算是对qt场景的一个小小的尝试,涉及内容不深,程序效果并是随心所欲,需要去进一步的改善和提高。暂且先把代码贴在此处,供大家学习和指正。工程包括四个类:界面A,TestMainWindow,用来充当翻转效果的A面。界面...

weixin_39562327的博客 1167

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pyqt5 窗体布局

窗体布局 1使用qtdesigner新建一个对话框,然后拖放几个按钮和文本框,按钮使用水平布局,效果如下: 鼠标选中水平布局再选中文本框,进行垂直布局,如下: 垂直布局后的效果如下: 然后,如何让窗体中的控件随着窗体大小的变化而变化大小呢?这个时候就要用到顶层布局了,使用网格布局,在窗体空白处点击右键,如下: 布局后的效果: 到此,布局就完成了,试...

weixin_30840253的博客 481

python pyqt6单窗口多界面实现

python pyqt6 单窗口多界面的简单实现demo

qq_63871792的博客 5255

PyQt5之布局管理

目录 一 写在开头 1.1 本文内容 二 绝对布局 三 布局类 3.1 水平布局(QHBoxLayout)和垂直布局(QVBoxLayout) 3.2 水平布局和垂直布局实例 3.3 网格布局(QGridLayout) 3.4 网格布局实例 3.5 表单布局(QFormLayout) 3.6 表单布局实例 3.7 嵌套布局 3.8 布局管理器QSpl...

EmbeddedCoder 的优快云博客 1545

Pyqt5界面多种布局方式

1.绝对布局 绝对布局方式,通过move的XY坐标方式来控制控件的位置 from PyQt5.QtWidgets import * import sys,math class absolutelayout(QWidget): def __init__(self): super(absolutelayout,self).__init__() self.setWindowTitle("绝对布局方式") self.label1=QLabel("欢迎",se

如果云层是天空的一封信 2014

PyQt入门(4)-尺寸策略和布局(上)

widget的尺寸策略是是widget所在的布局处理widget外观(大小和位置)的依据。widget在布局中则由尺寸策略决定其外观,不在布局中则由setGeometry()决定其外观。,它返回一个QSize,是布局给widget提供的首选(默认)大小,不能通过代码设置。布局会根据widget的类型、内容等给widget实时提供一个合适的sizeHint,举个简单的例子,有个QLabel,给它的text设置成1和11的时候,他的sizeHint是不一样的。widget倾向于拉伸widget倾向于拉伸。

guochaogang的博客 2015
上一篇: [springboot] 异步+定时任务的坑
下一篇: [python] 2. pyqt5 装环境,试试打包pyqt
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值