题目描述A string is a finite sequence of lower-case (non-capital) letters of the English alphabet. Particularly, it may be an empty sequence, i.e. a sequence of 0 letters. By A=BC we denotes that A is a string obtained by concatenation (joining by writing one immediately after another, i.e. without any space, etc.) of the strings B and C (in this order). A string P is a prefix of the string !, if there is a string B, that A=PB. In other words, prefixes of A are the initial fragments of A. In additio ...
Qt Troubleshoot
未读1.setWindowFlags(Qt.WindowType.WindowStayOnTopHint)窗口隐藏制作了一个可以自动显示的窗口类,实例化后自动显示,无需window.show()。但是,在show()之后又通过setWindowFlags()方法设置窗口置顶时:
12345678910from PySide6.QtWidgets import *from PySide6.QtCore import *app=QApplication()class MyWindow(QWidget): def __init__(self): super().__init__() self.show() self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)window=MyWindow()app.exec()
这个窗口刚显示出来就隐藏了。我想这也是为什么Qt的窗口不会自动显示的原因之一。但是如果一定要在构造函数里面自动显示,而且setWindowFlags()必须放在show()的后面的时 ...
Qt Troubleshoot
未读最近在研究Qt的过程中,又积攒了一些问题,下面是解决方案。
1.QColor.lighter()与QColor.darker()在Qml中,使用Qt.lighter()和Qt.darker()来让颜色变得更亮或更暗。括号里填的是相比原来颜色亮了或暗了多少倍,值在1左右。但是,如果这样使用到QtWidgets中,lighter的效果会很暗,darker的效果会很亮,反而达到了相反的效果。
这是因为,在Python程序文件中,括号内的值要乘以100,QColor是按原来的百分之多少来把颜色变亮或变暗的。
2.Qt同时继承两个类,窗口闪退有一次,我继承QFrame自己定义了一个Frame类,这个类带有自动显示、鼠标事件检测等功能。但是,QFrame是没有显示文字的功能的,所以我就尝试,制作一个Label类,同时继承(即载括号里写两个父类)可不可以呢?
12345class Label(Frame,QLabel): def __init__(self,parent=None,show=True,autoAdjust=True): global widgetCount super().__i ...
Qt Troubleshoot
未读建立这个分类的目的自从开始用Qt来编写应用程序之后,我发现应用的开发变得方便了许多。当然,图中难免遇到问题。我会在这个分类不断记录我遇到的问题以及我的解决过程。
1.QLabel自动换行描述我在使用QtWidgets.QLabel时,常常需要一个自动换行功能。查阅Qt官网,发现QLabel有个setWordWrap()方法。但是,有时即使设置了为True,它任然没有换行。
12345678from PySide6.QtWidgets import *app=QApplication([])window=QWidget()label=QLabel('LongWordTestLongWordTestLongWordTestLongWordTestLongWordTest',window)label.setWordWrap(True)window.resize(500,500)window.show()app.exec()
解决这是因为QLabel只会在有空格的地方换行。所以,纯数字和纯字母都会认为是只有一个单词,所以就不会换行了。当然,纯汉字也是会正常换行的。
2.自定 ...
前言我使用Qt制作了一个时钟应用,现在来分享一下实现的过程。
这个小项目包括了四个部分:
时钟(显示当前时间)
秒表(正向计时器,支持记录时间)
倒计时
闹钟
各种准备工作导入制作这个应用,我使用了一大堆QtWidgets组件。同时,还有至关重要的time模块。
123456from PySide6.QtWidgets import (QApplication,QWidget,QPushButton,QGroupBox,QLabel, QTableWidget,QTableWidgetItem,QProgressBar,QScrollArea, QDialog,QGridLayout,QVBoxLayout,QHBoxLayout,QSpinBox,QLineEdit,QComboBox,QSystemTrayIcon,QCheckBox)from PySide6.QtGui import QIcon,QFontfrom PySide6.QtCore import QObject,Q ...
三维引擎
未读前言最近比较忙,所以很久没更新。
之前玩过很多三维沙盒游戏,但是很好奇是如何实现那种三维投射的
于是最近写出来了一个三维引擎
过程我还是用的qt(自从用qt就发现爱上qt了)去实现打开窗口、画线等功能,但是qt自带的三维支持我不用。
准备工作导入库、创建qt应用、创建空间对象,都不多说。
12345678910from PySide6.QtWidgets import QWidget,QApplicationfrom PySide6.QtGui import QPainter,QColor,QPen,QCursorfrom PySide6.QtCore import QTimer,Qtimport mathclass Space(): def __init__(self): self.objects=[]qapp=QApplication([])def run(): qapp.exec()
点对象和相机对象组成图形的基本元素是点。为了方便描述三维空间坐标,我创建了一个点对象。同时,需要一个相机,点会投射到相机上
12345class Point(): d ...
物理引擎
未读前言这一篇,继续之前的想法,开始写物理引擎的代码。
由于pygame不能同时打开多个窗口,我决定换Qt来显示窗口。
开始导入库打开physics.py
12from PySide6 import * import math
PySide6:这是Qt官方的PyQt6的库。这里我们用它来实现窗口以及内容的显示。
math:Python数学库,用来处理一些高级的物理计算。
全局常量12DYMANIC=0STATIC=1
这些常量定义了物体的状态等信息,后学会有更多常量写在这里。
Qt应用程序123qapp=QtWidgets.QApplication([])def run(): qapp.exec()
之后在demo.py中运行physics.run()即可运行应用程序。
物理空间编写一个Space(QtWidegets.QWidget)类来模拟一个物理空间,这将被显示为一个窗口。
实例化123456789class Space(QtWidgets.QWidget): def __init__(self,width,height,caption,g): sup ...
之前有一个cloudflare免费二级域名admibrill1.pages.dev。
二级域名就是二级域名,有很多限制,加个友链都成问题。从八月开始就想买了,但是我自己买不了,没有条件。
等到9月21日(CSP-J/S第一轮)完成,30日出成绩,总算能买了,就去阿里云买了一个。
现在,有了全新的域名blog.qyadbr.top,qyadbr.top域名下面之后会做很多服务。
拜拜!
物理引擎
未读前言为什么要写物理引擎其实在很久以前就用过别人的物理引擎了,可是这些引擎的功能不满足我的需求,比如说不支持流体的运动,以及实现把一个物体切割成两部分等,还可以制造燃烧,爆炸等效果,别人的物理引擎都没有。所以我决定自己先用python写一款物理引擎,后面再写成JavaScript来实现网页上的效果。
本文的编号是零,意思是这是写物理引擎前的准备工作。
物理引擎的结构组成物理引擎的是窗口(Window),力(Force),物体(Object)和效果(Effect)。
窗口就是一个物理场,它记录了很多物理常量(如重力加速度等)
同时,它也是物体的载体,可以控制物体是否能跑到窗口外面去。
力可以使物体运动。会考虑重力、引力、浮力等。
物体分为三种:刚体(solid)、流体(liquid)、和关节(joint)
刚体是指在运动中和受力作用后,形状和大小不变,而且内部各点的相对位置不变的物体。
刚体可以分为线段(segment)球体(其实就是一个圆,circle)和多边形(polygon)。
每个刚体都会考虑碰撞。
流体分为牛顿流体和非牛顿流体。
关节可以约束两个刚体,可以伸缩。
效果则包含劈 ...
基本语法分级标题123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题
效果:
为防止标题对本文目录造成影响,见本页文章标题大小
字体样式设置1234**加粗**_斜体_<br> <!-- 注释, 这里是换行-->~~删除线~~
效果:加粗斜体 删除线
链接插入网页链接123这是一个网址:https://blog.qyadbr.top这也是一个网址:<https://blog.qyadbr.top>[Admibrill的博客](https://blog.qyadbr.top)
效果:
这是一个网址:https://blog.qyadbr.top这也是一个网址:https://blog.qyadbr.topAdmibrill的博客
插入图片链接1
效果:
分割线1___
效果:
代码块行内代码块1`abc`
效果:abc
...