Time of Update: 2017-02-27
整個視窗使用訊息類重新寫的源碼如下:#windows應用程式 #使用類來描述 #開發人員:蔡軍生(QQ:9073204) 深圳 2014-8-24 from ctypes import *from ctypes.wintypes import * WS_EX_APPWINDOW = 0x40000WS_OVERLAPPEDWINDOW = 0xcf0000WS_CAPTION = 0xc00000SW_SHOWNORMAL = 1SW_SHOW =
Time of Update: 2017-02-27
在前面已經定義好視窗的訊息處理類,雖然擁有處理能力了,但還沒有放到回呼函數裡進行相應的調用,那還是達不到目標,還需要下面兩個細節的處理,才可以嵌入到訊息處理過程裡。我們來順著訊息類的傳遞路徑來進行分析它的具體過程,這樣理解起來會更順暢一些,更符常人的思維。具體的過程如下圖所示:從上圖可以看到,使用Controller類來建立視窗處理訊息的執行個體對象ctrl,然後把它傳送給WinMaker的執行個體對象,也就是傳送給建立視窗的函數Create,通過作業系統的建立視窗的訊息WM_NCCREATE帶
Time of Update: 2017-02-27
我們知道一個應用程式一般都不是只有一個視窗組成的,往往是多視窗組成的,比如一個對話方塊的視窗上有一個按鈕,這裡對話方塊是一個視窗,按鈕也是一個視窗。如果一個對話方塊上有100個按鈕,就是100個視窗,這樣控制代碼會比較多。因而出現了DirectUI的設計方法,所有按鈕和主視窗都是同一個視窗,採用分不同地區來繪畫而成。這裡就遇到了一個問題,每個視窗是獨立存在的,但在前面的例子裡,可以看到每個視窗都是調用PyWndProc函數來處理。意味著多個視窗的訊息都拋給PyWndProc函數處理,這樣處理起來
Time of Update: 2017-02-27
視窗在前面已經註冊,並且已經建立出來了,但這時這個視窗並不能出現在我們的眼前,又是什麼原因呢?哦,還不顯示出來,原來是有原因的,就是視窗有多種狀態,視窗可以隱藏、普通顯示、最大化顯示、最小化顯示等。並且建立出來時,不立即顯示,也是可以方便一性地建立很多很多視窗,最後才一次性地顯示出來;另外建立視窗之後在系統看來視窗已經是可用的,這時可以先在視窗上繪圖,當完成時再一次性顯示出來,也避免視窗不斷地重新整理時視窗在閃動,看起來讓人眼花繚亂。因而在這裡就封裝一個視窗顯示類Window,這個類非常簡單,它
Time of Update: 2017-02-27
最近閑著學習python,看到有個paramiko模組,貌似很強大,學著寫了個一個小程式,可以直接在window下登入到linux,執行並返回執行結果。下面直接貼代碼:#!/usr/bin/env python import paramiko #hostname='192.168.0.102' hostname='172.28.102.250'username='root'password='abc' #port=22 if __name__
Time of Update: 2017-02-27
有時候我們需要控制頁面捲軸上的捲軸,但捲軸並非頁面上的元素,這個時候就需要藉助js是來進行操作。一般用到操作捲軸的會兩個情境:註冊時的法律條文需要閱讀,判斷使用者是否閱讀的標準是:捲軸是否拉到最下方。要操作的頁面元素不在吸視範圍,無法進行操作,需要拖動捲軸其實,實現這個功能只要一行代碼,但由於不懂js ,所以花了不小力氣找到這種方法。用於標識捲軸位置的代碼<body onload= "document.body.scrollTop=0
Time of Update: 2017-02-27
本節重點:調用js方法execute_script(script, *args)在當前視窗/架構 同步執行javaScript指令碼:JavaScript的執行。*參數:適用任何JavaScript指令碼。使用:driver.execute_script(‘document.title’)使快播登陸使用者名稱輸入框標紅顯示:#coding=utf-8from selenium import webdriverimport time driver =
Time of Update: 2017-02-27
David Mertz 用原始碼樣本以及詳細的說明介紹了 TK 和Tkinter 封裝器(Python 的 GUI庫)。為了更便於操作,他示範了曾在以前很多文章中使用的 Txt2Html前端程式的 GUI移植樣本。當然,他認為您會定期閱讀其專欄。我想要向您介紹能想像到的開始 GUI 編程的最簡單方法,就是使用 Scriptics 的 TK 和 Tkinter 封裝器。我們將與 developerWorks 中的 “Python 中的 curses 編程” 提到的
Time of Update: 2017-02-27
本節重點:上傳檔案檔案上傳操作也比較常見功能之一,上傳功能沒有用到新有方法或函數,關鍵是思路。上傳過程一般要開啟一個本地視窗,從視窗選擇本地檔案添加。所以,一般會卡在如何操作本地視窗添加上傳檔案。其實,在selenium webdriver沒我們想的那麼複雜;只要定位上傳按鈕,通send_keys添加本地檔案路徑就可以了。絕對路徑和相對路徑都可以,關鍵是上傳的檔案存在。下面通地例子示範。upload_file.html<html><head><meta
Time of Update: 2017-02-27
本節重點處理下拉框switch_to_alert() accept()下拉框是我們最常見的一種頁面元素,對於一般的元素,我們只需要一次就定位,但下拉框裡的內容需要進行兩次定位,先定位到下拉框,再定位到下拉框內裡的選項。drop_down.html<html> <body> <select id="ShippingMethod" onchange="updateShipping(options[selectedIndex]);"
Time of Update: 2017-02-27
在python中,它的time模組功能十分強大,我們今天就來學習下,廢話少說,我們來看下實際的效果,下面貼出代碼:import time print time.time() print time.localtime(time.time()) print time.strftime('%Y-%m-%d', time.localtime()) print time.strftime('%y-%m-%d', time.localtime()) print
Time of Update: 2017-02-27
在前面已經學習怎麼樣把註冊視窗的功能封裝成類的形式,接著下來就是建立視窗的功能,而這部分功能又是怎麼樣編寫才是最合適的呢,以便後面所有開發工作都可以複用這些代碼。我們來仔細地分析一下視窗上主要有什麼東西是可變的,什麼東西不變的,原則上就是把可變的東西變成通過函數方式來改變,不變的東西放在類內部,這樣減少類的使用者在細節上考慮的問題。目前來看,一個視窗最容易變化的就兩樣東西:視窗類別型,指明這個視窗是屬於那一個種類的,比如Edit、List等;另外一個就是視窗的標題,因為軟體的使用者只能從視窗的標
Time of Update: 2017-02-27
#!/usr/bin/env python from processing import Process, Queue, Pool import time import subprocess from IPy import IP import sys from snmp import Snmp q = Queue() oq = Queue() #ips = IP("10.0.1.0/24") ips
Time of Update: 2017-02-27
#!/usr/bin/env python import netsnmp class Snmp(object): """ A basic SNMP session""" def __init__(self, oid = "sysDescr", Version = 2,
Time of Update: 2017-02-27
#!/usr/bin/env pyt hon #wraps up rsync to synchronize two directories from subprocess import call import sys import time """this motivated rsync tries to synchronize forever"""
Time of Update: 2017-02-27
Server:import socket address = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.bind(address)while True: data, addr = s.recvfrom(2048) if not data: print "client has exist" break print &
Time of Update: 2017-02-27
Server:# server import socket address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s = socket.socket() s.bind(address) s.listen(5) ss, addr = s.accept() print 'got connected from',addr
Time of Update: 2017-02-27
Python unittest模組的相關用法待測源碼類:widget.py#!/usr/bin/env python class Widget: def __init__(self, size = (40, 40)): self._size = size def getSize(self): return self._size def resize(self, width, height):
Time of Update: 2017-02-27
代碼:#! /usr/bin/python # Filename: inherit.py # Author: yanggang class SchoolMember: def __init__(self,name,age): self.name = name self.age = age print 'init SchoolMember: ', self.name
Time of Update: 2017-02-27
Fedora工程指導委員會投票接受了將Python 3作為預設Python實現版本的提議。此外,Fedora的包管理器將從yum切換到DNF。預設使用 Python 3還是使用Python 2.6的爭論主要在於兩者不相容,從而給Python的項目遷移製造了麻煩。Python 3分支自2008年發布以來積極開發了五年,已經成熟和穩定,而目前仍在維護的Python