Pyqt5的事例讲解
1、第一个gui程序
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- # 创建一个窗口
- w = QWidget()
- # 设置窗口的高度和宽度
- w.resize(500,200)
- # 移动窗口的位置
- w.move(400,100)
- # 设置窗口的title
- w.setWindowTitle("第一个gui程序")
- # 显示窗口
- w.show()
- # 设置窗口退出,程序在退出
- sys.exit(app.exec_())
2、设置图标
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- # 设置图标的类
- from PyQt5.QtGui import QIcon
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- # 创建一个窗口
- w = QWidget()
- # 设置窗口的高度和宽度
- w.resize(500,200)
- # 移动窗口的位置
- w.move(400,100)
- # 设置窗口的title
- w.setWindowTitle("第一个gui程序")
- # 设置窗口的图标
- w.setWindowIcon(QIcon("test.jpg"))
- # 显示窗口
- w.show()
- # 设置窗口退出,程序同时退出
- sys.exit(app.exec_())
3、设置窗口的浮动提示框和按钮的浮动提示框
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtGui import QIcon
- # 处理提示框的一个类
- from PyQt5.QtWidgets import QToolTip
- # 处理按钮的一个类
- from PyQt5.QtWidgets import QPushButton
- # 处理字体的一个类
- from PyQt5.QtGui import QFont
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- # 创建一个窗口
- w = QWidget()
- # 设置窗口的高度和宽度
- w.resize(500,200)
- # 移动窗口的位置
- w.move(400,100)
- # 设置窗口的title
- w.setWindowTitle("提示框")
- # 设置窗口的图标
- w.setWindowIcon(QIcon("test.jpg"))
- # 创建窗口的提示文本信息
- w.setToolTip("这是一个窗口的提示框\n设计者:张三")
- # 设置字体和字号
- QToolTip.setFont(QFont("SansSerif", 15))
- # 创建一个按钮,这个按钮防在我们前面创建的窗口中
- b = QPushButton("Button",w)
- # 设置按钮的提示文本信息
- b.setToolTip("这是一个按钮的提示框\n设计者:张三")
- # 改变按钮的尺寸
- b.resize(b.sizeHint())
- # 移动按钮
- b.move(50,50)
- # 显示窗口
- w.show()
- # 设置窗口退出,程序在退出
- sys.exit(app.exec_())
4、设置一个按钮,点击该按钮会关闭整个窗口的效果
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtGui import QIcon
- # 处理提示框的一个类
- from PyQt5.QtWidgets import QToolTip
- # 处理按钮的一个类
- from PyQt5.QtWidgets import QPushButton
- # 处理字体的一个类
- from PyQt5.QtGui import QFont
- # 需要导入一个新的模块
- from PyQt5.QtCore import QCoreApplication
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- # 创建一个窗口
- w = QWidget()
- # 设置窗口的高度和宽度
- w.resize(500,200)
- # 移动窗口的位置
- w.move(400,100)
- # 设置窗口的title
- w.setWindowTitle("关闭窗口测试")
- # 设置窗口的图标
- w.setWindowIcon(QIcon("test.jpg"))
- # 创建窗口的提示文本信息
- w.setToolTip("这是一个窗口的提示框\n设计者:崔跃荣")
- # 设置字体和字号
- QToolTip.setFont(QFont("SansSerif", 15))
- # 创建一个按钮,这个按钮防在我们前面创建的窗口中
- b = QPushButton("点击关闭窗口",w)
- # 设置按钮的提示文本信息
- b.setToolTip("这是一个关闭按钮的提示框\n设计者:崔跃荣")
- # 为这个按钮绑定一个事件
- b.clicked.connect(QCoreApplication.instance().quit)
- # 改变按钮的尺寸
- b.resize(b.sizeHint())
- # 移动按钮
- b.move(50,50)
- # 显示窗口
- w.show()
- # 设置窗口退出,程序在退出
- sys.exit(app.exec_())
5、做个捕获关闭事件的对话框
- # 重写QWidget类中的窗口关闭事件,先捕获窗口的关闭的事件,然后在进行判断
- import sys
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QMessageBox
- from PyQt5.QtWidgets import QApplication
- # 封装窗口代码的类
- class Mymessagebox(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.setGeometry(300,300,300,300)
- self.setWindowTitle("对话框")
- self.show()
- # 重写窗口关闭事件
- def closeEvent(self,event):
- # 显示询问的对话框,这里会阻塞
- # 显示两个框,一个是YES 一个NO,默认选中no
- reply = QMessageBox.question(self,"消息","确定要退出?",QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
- if reply == QMessageBox.Yes:
- # 接受事件
- event.accept()
- else:
- # 忽略事件
- event.ignore()
6、做一个窗口居中的示例
- # 通过得到屏幕宽度和高度和窗口的高度和宽度来计算得到居中的位置
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QMessageBox
- import sys
- class Centerwindowbox(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.resize(300,200)
- self.setWindowTitle("窗口居中的对话框")
- self.center()
- self.show()
- def center(self):
- desktop = app.desktop()
- # print(dir(desktop))
- # 获取整个屏幕的高度
- print(desktop.height())
- # 获取整个屏幕的宽度
- print(desktop.width())
- # 获取窗口的宽度
- print(self.width())
- # 获取窗口的高度
- print(self.height())
- self.move((desktop.width() - self.width())/2,(desktop.height() - self.height())/2)
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- cw = Centerwindowbox()
- sys.exit(app.exec_())
7、做一个绝对布局的例子
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QMessageBox
- from PyQt5.QtWidgets import QLabel
- import sys
- class Test(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- label1 = QLabel("姓名",self)
- label1.move(15,20)
- label2 = QLabel("年龄", self)
- label2.move(25,30)
- label3 = QLabel("身高", self)
- label3.move(35,40)
- self.setGeometry(300,200,400,400)
- self.setWindowTitle("窗口绝对布局")
- self.show()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- w = Test()
- sys.exit(app.exec_())
8、做一个盒布局的例子
- # 水平盒布局和垂直盒布局,有更强的适应性,会随着窗口的尺寸的变化,位置也会变化,绝对布局,如果窗口的尺寸变化,控件的位置是不会变化的
- # 水平盒布局:沿水平方向摆放
- # 垂直盒布局:沿垂直方向摆放
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QMessageBox
- from PyQt5.QtWidgets import QPushButton
- # 用到的新类
- from PyQt5.QtWidgets import QHBoxLayout
- from PyQt5.QtWidgets import QVBoxLayout
- import sys
- # 我们这个例子是把两个控件放在水平盒布局中,然后把水平盒布局放在垂直盒布局中
- class Boxlagout(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- # 创建2个按钮
- button1 = QPushButton("确定")
- button2 = QPushButton("取消")
- # 创建水平盒布局
- hbox = QHBoxLayout()
- vbox = QVBoxLayout()
- # 将水平盒布局放在窗口的右侧
- hbox.addStretch()
- # 把两个按钮添加到水平盒布局中
- hbox.addWidget(button1)
- hbox.addWidget(button2)
- # 将垂直盒布局放在窗口的下边
- vbox.addStretch()
- # 把水平盒布局添加到垂直盒布局中
- vbox.addLayout(hbox)
- # 让垂直盒布局生效,这样操作,水平盒布局也会同时生效
- self.setLayout(vbox)
- self.setGeometry(300,200,400,400)
- self.setWindowTitle("盒布局")
- self.show()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- b = Boxlagout()
- sys.exit(app.exec_())
9、做一个网格布局的例子
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QMessageBox
- from PyQt5.QtWidgets import QPushButton
- # 用到的新类
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtWidgets import QLineEdit
- from PyQt5.QtWidgets import QTextEdit
- from PyQt5.QtWidgets import QGridLayout
- class Test(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- title = QLabel("标题")
- auther = QLabel("作者")
- summary = QLabel("摘要")
- titleedit = QLineEdit()
- autheredit = QLineEdit()
- summaryedit = QTextEdit()
- # 创建网格布局的对象
- grid = QGridLayout()
- # 创建单元格之间的距离
- grid.setSpacing(20)
- # 添加到第二行的第一列
- grid.addWidget(title,1,0)
- # 添加到第二行的第二列
- grid.addWidget(titleedit,1,1)
- # 添加到第三行第一列
- grid.addWidget(auther,2,0)
- # 添加到第三行第二列
- grid.addWidget(autheredit,2,1)
- grid.addWidget(summary,3,0)
- # 占据(3,1)(4,1)(5,1)(6,1)
- grid.addWidget(summaryedit,3,1,6,1)
- # 应用当前的网格布局
- self.setLayout(grid)
- self.setGeometry(300,200,400,400)
- self.setWindowTitle("网格布局")
- self.show()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- b = Test()
- sys.exit(app.exec_())
10、做一个按钮空间的例子
- # 按钮支持两种状态,一种是normal,一种是checked
- # normal:按钮正常的状态
- # checked:按钮被按下的状态
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QMessageBox
- from PyQt5.QtWidgets import QPushButton
- # 用到新的类
- from PyQt5.QtWidgets import QFrame
- # 设置颜色的类
- from PyQt5.QtGui import QColor
- class Test(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- # 创建初始的颜色,黑色
- self.color = QColor(0,0,0)
- # 创建红色的按钮
- redbutton = QPushButton("红",self)
- # 设置按钮被选中
- redbutton.setCheckable(True)
- # 用绝对定位
- redbutton.move(10,10)
- # 点击会执行self.setColor的函数
- redbutton.clicked[bool].connect(self.setColor)
- # 创建绿色的按钮
- greenbutton = QPushButton("绿", self)
- # 设置按钮被选中
- greenbutton.setCheckable(True)
- # 用绝对定位
- greenbutton.move(10, 30)
- # 点击会执行self.setColor的函数
- greenbutton.clicked[bool].connect(self.setColor)
- # 创建蓝色的按钮
- bluebutton = QPushButton("蓝", self)
- # 设置按钮被选中
- bluebutton.setCheckable(True)
- # 用绝对定位
- bluebutton.move(10, 50)
- # 点击会执行self.setColor的函数
- bluebutton.clicked[bool].connect(self.setColor)
- # 创建显示颜色的对象
- self.square = QFrame(self)
- # 设置尺寸
- self.square.setGeometry(150,20,100,100)
- # 设置背景颜色
- self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())
- self.setGeometry(300,200,400,400)
- self.setWindowTitle("按钮控件")
- self.show()
- def setColor(self,presssed):
- # presssed这个参数的意思是当前的按钮是否被按下
- # 获取当前点击的按钮
- source = self.sender()
- if presssed:
- var = 255
- else:
- var = 0
- if source.text() == "红":
- self.color.setRed(var)
- elif source.text() == "绿":
- self.color.setGreen(var)
- else:
- self.color.setBlue(var)
- self.square.setStyleSheet('QWidget{background-color:%s}'%self.color.name())
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- b = Test()
- sys.exit(app.exec_())
11、编写一个QlineEdit控件的例子,单行文本输入框
- # 这个例子是这样的,我们定义个lable控件,然后在定义QlineEdit控件,然后对QlineEdit控件绑定一个onchange的方法,这个方法就是获取
- # QlineEdit控件输入的值,然后把这个值赋值给label标签
- import sys
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtWidgets import QLineEdit
- from PyQt5.QtWidgets import QApplication
- class LineEdit(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.label = QLabel(self)
- lineEdit = QLineEdit(self)
- lineEdit.move(80,100)
- self.label.move(80,40)
- # 对lineEdit绑定一个changed事件
- lineEdit.textChanged[str].connect(self.onChanged)
- self.setGeometry(300,200,280,200)
- self.setWindowTitle("QlineEdit控件")
- self.show()
- def onChanged(self,text):
- self.label.setText(text)
- self.label.adjustSize()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- b = LineEdit()
- sys.exit(app.exec_())
12、写一个Checkbox的例子
- # Checkbox:复选框
- # 这个例子是这样的,先一个复选框,然后监控这个复选框的是否改变,如果选中,设置窗口的title为A,如果未选中,则设置窗口的title为B
- import sys
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QCheckBox
- from PyQt5.QtCore import Qt
- class Checkbox(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- cb = QCheckBox("请选择",self)
- cb.move(20,20)
- # 复选框状态改变,就会触发执行self.changeTitle这个方法,同时会把复选框的说法选中的状态传递到self.changeTitle这个方法中
- cb.stateChanged.connect(self.changeTitle)
- self.setGeometry(100,200,300,200)
- self.setWindowTitle("还没有选择我")
- self.show()
- # Qt.Checked 这个是布尔类型
- def changeTitle(self,state):
- if state == Qt.Checked:
- self.setWindowTitle("已结选择了")
- else:
- self.setWindowTitle("还没有选择")
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- b = Checkbox()
- sys.exit(app.exec_())
13、写一个Qslider滑块控件的例子
- # QSlider:滑块控件,我们这里做一个这样的例子,写一个滑块,设置这个滑块最大值和最小值,然后监控这个滑块的valuechange事件,然后把滑块的value的值
- # 赋值给一个lable标签
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtWidgets import QSlider
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtCore import Qt
- class slider(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- # Qt.Horizontal:这个的意思是水平显示
- # Vertical:这个意思是垂直显示
- # slider = QSlider(Qt.Horizontal,self)
- slider = QSlider(Qt.Vertical, self)
- slider.setMinimum(60)
- slider.setMaximum(300)
- slider.setGeometry(30,40,50,300)
- slider.valueChanged[int].connect(self.changevalue)
- self.label = QLabel(self)
- self.label.setGeometry(160,40,80,30)
- self.setGeometry(100,200,300,1000)
- self.setWindowTitle("QSlider控件")
- self.show()
- def changevalue(self,value):
- self.label.setText(str(value))
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- b = slider()
- sys.exit(app.exec_())
14、pyqt实现一个进度条的示例
- #Auther Bob
- #--*--conding:utf-8 --*--
- import sys
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QProgressBar
- from PyQt5.QtWidgets import QPushButton
- from PyQt5.QtWidgets import QApplication
- # 定时器
- from PyQt5.QtCore import QBasicTimer
- class ProgressBar(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.pbar = QProgressBar(self)
- self.pbar.setGeometry(40,40,400,40)
- self.btn = QPushButton("开始",self)
- self.btn.move(40,80)
- self.btn.clicked.connect(self.doAction)
- self.timer = QBasicTimer()
- self.value = 0
- self.setGeometry(300,300,500,500)
- self.setWindowTitle("进度条控件")
- self.show()
- def timerEvent(self, *args, **kwargs):
- if self.value >= 100:
- self.timer.stop()
- self.btn.setText("完成")
- return
- else:
- self.value += 1
- self.pbar.setValue(self.value)
- def doAction(self):
- if self.timer.isActive():
- self.timer.stop()
- self.btn.setText("开始")
- else:
- self.timer.start(100,self)
- self.btn.setText("停止")
- # self.timer.stop()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- form = ProgressBar()
- sys.exit(app.exec_())
15、Pyqt实现一个下拉菜单的例子
- #Auther Bob
- #--*--conding:utf-8 --*--
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtWidgets import QComboBox
- class ComboBox(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.lab = QLabel("中国",self)
- self.lab.move(50,150)
- combo = QComboBox(self)
- combo.addItem("米国")
- combo.addItem("法国")
- combo.addItem("德国")
- combo.addItem("英国")
- combo.move(50,50)
- combo.activated[str].connect(self.onactived)
- combo1 = QComboBox(self)
- combo1 = QComboBox(self)
- combo1.addItem("深圳")
- combo1.addItem("背景")
- combo1.addItem("上海")
- combo1.addItem("广州")
- combo1.move(200,50)
- combo1.activated[str].connect(self.onactived)
- self.setGeometry(300,300,300,200)
- self.setWindowTitle("下拉菜单")
- self.show()
- def onactived(self,text):
- self.lab.setText(text)
- self.lab.adjustSize()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- form = ComboBox()
- sys.exit(app.exec_())
16、pyqt实现一个现实图像的例子
- #Auther Bob
- #--*--conding:utf-8 --*--
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QHBoxLayout
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtGui import QPixmap
- class Pixmap(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- hbox = QHBoxLayout(self)
- pixmap = QPixmap("test.JPG")
- lab = QLabel(self)
- lab.setPixmap(pixmap)
- hbox.addWidget(lab)
- self.setLayout(hbox)
- self.move(300,300)
- self.setWindowTitle("显示图像")
- self.show()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- form = Pixmap()
- sys.exit(app.exec_())
17、pyqt实现一个显示日历的例子
- #Auther Bob
- #--*--conding:utf-8 --*--
- "日历控件"
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtWidgets import QCalendarWidget
- from PyQt5.QtWidgets import QVBoxLayout
- from PyQt5.QtCore import QDate
- class CalendarWidget(QWidget):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- vbox = QVBoxLayout()
- cal = QCalendarWidget(self)
- self.lab = QLabel(self)
- # 显示网个
- cal.setGridVisible(True)
- cal.clicked[QDate].connect(self.showdate)
- vbox.addWidget(cal)
- date = cal.selectedDate()
- self.lab.setText(date.toString())
- vbox.addWidget(self.lab)
- self.setLayout(vbox)
- self.setGeometry(300,300,350,300)
- self.setWindowTitle("日历控件")
- self.show()
- def showdate(self,data):
- self.lab.setText(data.toString())
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- form = CalendarWidget()
- sys.exit(app.exec_())
18、pyqt实现一个显示菜单的例子
- #Auther Bob
- #--*--conding:utf-8 --*--
- import sys
- from PyQt5.QtWidgets import QApplication
- from PyQt5.QtWidgets import QWidget
- from PyQt5.QtWidgets import QLabel
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtWidgets import QAction
- from PyQt5.QtWidgets import QMenu
- class Menu(QMainWindow):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- menubar = self.menuBar()
- fileMenu = menubar.addMenu("文件")
- newAction = QAction("新建",self)
- importMenu = QMenu("导入",self)
- importAction1 = QAction("从pdf导入",self)
- importAction2 = QAction("从word导入", self)
- importAction1.triggered.connect(self.actionHandler1)
- importAction2.triggered.connect(self.actionHandler2)
- importMenu.addAction(importAction1)
- importMenu.addAction(importAction2)
- fileMenu.addAction(newAction)
- fileMenu.addMenu(importMenu)
- self.setGeometry(300,300,300,200)
- self.setWindowTitle("菜单")
- self.show()
- def actionHandler1(self):
- print("从pdf导入")
- def actionHandler2(self):
- print("从word导入")
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- form = Menu()
- sys.exit(app.exec_())
Pyqt5的事例讲解的更多相关文章
- Android Service组件(1)
android service 和其他服务一样,并没有实际运行的界面,它运行在android 后台.一般通过service为应用程序提供服务(比如,从Internet下载文件,控制音乐播放器等).Se ...
- Solidity教程系列1 - 类型介绍
现在的Solidity中文文档,要么翻译的太烂,要么太旧,决定重新翻译下,再加上代码事例讲解. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果 ...
- 智能合约语言Solidity教程系列2 - 地址类型介绍
智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你 ...
- 智能合约语言 Solidity 教程系列2 - 地址类型介绍
Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是 ...
- 现代JS中的流程控制:详解Callbacks 、Promises 、Async/Await
JavaScript经常声称是_异步_.那是什么意思?它如何影响发展?近年来这种方法有何变化? 请思考以下代码: result1 = doSomething1(); result2 = doSomet ...
- .Net异步编程详解入门
前言 今天周五,早上起床晚了.赶着挤公交上班.但是目前眼前有这么几件事情.刷牙洗脸.泡牛奶.煎蛋.在同步编程眼中.先刷牙洗脸,然后烧水泡牛奶.再煎蛋,最后喝牛奶吃蛋.毫无疑问,在时间紧促的当下.它完了 ...
- PyQt5中QTableView函数讲解
如果想熟悉QTableWidget,请参考PyQt5高级界面控件之QTableWidget(四) setSpan(int, int, int, int)四个参数分别代表,起始行,列,合并的行数,全并的 ...
- zookeeper入门讲解事例
zookeeper使用和原理探究(一) zookeeper介绍zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目中的一个子项目,并且根据google发表的<Th ...
- Oracle Date Function 讲解和事例
1 year=1*12 months 1 day=24 hours=24*(1*60mins)=24*60*(1*60 seconds) 1 week =7 days 注意: 黑色字体是 oracle ...
随机推荐
- table布局与div布局
DIV与TABLE本身并不存在什么优缺点,所谓web标准只是推荐的是正确的使用标签,好比说:DIV用于布局,而TABLE则本来就是转二维数据的.让TABLE做该做的事,并不是说页面里不出现TABL ...
- join和子查询的一点点思考
代码和表设计过程中,为了考虑数据库的范式,通常导致需要join多张表或子查询, 如报表场景, 可此种方式在大数据量的 情况下,效率较低. 如果能做适量的数据冗余,便可以减少join或子查询,效率较高 ...
- mysql网课部分笔记
mysql> \s 查看当前数据库的状态 \c 取消当前所输入的命令或字符 ------------------------------------------------------- m ...
- NGUI 背景图自适应
背景图UISprite组件调整如下: UIRoot设置: 不保持比例自适应: 保持宽与屏幕宽一致,高度随宽的缩放比例进行缩放:
- ReactiveX 学习笔记(5)合并数据流
Combining Observables 本文的主题为合并 Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操作符(四)Combining An ...
- 【366】通过 python 求解 QP 问题
参考: 9.3 凸优化 · 如何在 Python 中利用 CVXOPT 求解二次规划问题 参考: Quadratic Programming - Official website 步骤如下: 首先安装 ...
- Mysql数据库如何创建用户
创建test用户,密码是1234. MySQL u root -p CREATE USER 'test'@'localhost' IDENTIFIED BY '1234'; #本地登录 CREATE ...
- [namespace]PHP命名空间的动态访问 & 使用技巧
----------------------------------------------------------------------------------------------- /* | ...
- 一个关于EasyUI超恶心的BUG。。。Cannot read property 'options' of undefined
控制台Console抛出的异常: jquery.easyui.min.js:9148 Uncaught TypeError: Cannot read property 'options' of und ...
- ELK日志平台
1.ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch.Logstash和Kibana三个开源工具组成,不过现在还新增了一个Beats,它是一个轻量级的日志收集处理工具(Age ...