opengl窗口中,拾取物体后,如何弹出新窗口,并在新窗口里显示所拾取物体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opengl窗口中,拾取物体后,如何弹出新窗口,并在新窗口里显示所拾取物体相关的知识,希望对你有一定的参考价值。

用win32,opengl开发的程序
在opengl窗口中,鼠标拾取物体后,如何做到弹出新窗口,并在新窗口里显示所拾取物体,谢谢!
我想在拾取物体后,利用虚拟球技术对所拾取到的物体进行旋转...有别的实现方法也可以

参考技术A 一个简单的方法:拾取物体时获得相信物体信息,比如资源名。然后以拾取的信息为参数创建另外一个进程去显示拾取的物体。当然还有很多方法。

要旋转物体可以参考一下

void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);

参数angle 指定坐标系旋转角度,向量(x,y,z)指定旋转轴

Selenium弹出新页面无法定位元素问题(Unable to locate element)--多窗口切换

最近学习到多窗口切换,在页面操作过程中有时点击某个链接会弹出新的窗口,这时需要先切换到新窗口才能对其进行操作。Webdriver提供了switch_to.window( ) 方法实现在不同窗口中切换。

查阅相关资料,得到两种方法来定位到当前页面:

方法一:

browser.switch_to_window(browser.window_handles[1])

方法二:直接定位当前最新弹出的窗口

for handle in browser.window_handles:#方法二,始终获得当前最后的窗口,所以多要多次使用
    browser.switch_to_window(handle)

方法一 VS 方法二

相比较于方法二,方法一的优点在于后续操作,比如关闭第几个窗口,句柄传递是按照顺序来的。缺点在于对于较多新页面,有时候弹出窗口太多会变得难以计算。

而方法二,一直在获取最后的窗口,如果你只是对最后的窗口进行操作,也就是(自己定义的)”前向“操作时,不计后果,可以直接拿来用,而且代码不变。缺点在于,如果要返回到某个窗口句柄,那就显得没有方法一来的好。相对推荐使用方法一。

 

贴代码

可以参照 http://blog.csdn.net/mrlevo520/article/details/51926145/ 获得更多的解析。

#Author:哈士奇说喵
#因为搜索引擎检索项根据热度来排名,所以我只能对7.17的数据进行测试和负责,大家测试时候注意元素变化
#coding=utf-8
from selenium import webdriver
import time

browser=webdriver.Firefox()
browser.get("http://cn.bing.com/")
browser.find_element_by_name (‘q‘).send_keys("MrLevo520 CSDN")
time.sleep(1)
#----------操作一:进行对关键字MrLevo520 CSDN搜索---------- browser.find_element_by_id("sb_form_go").click()#执行此操作会进行搜索,但是没有弹出新窗口,所以句柄不用重定位 time.sleep(3)
#----------操作二:对搜索页面第一项进行点击操作-------------- browser.find_element_by_xpath(".//*[@id=‘b_results‘]/li[1]/div[1]/h2/a").click()#进行当前页面点击第一项 time.sleep(3) #一定要加,会报错
#----------操作三:对新弹出的页面再点击"我的头像"选项--------- #注意此时已经是弹出的第一个窗口了,需要重新定位句柄 ‘‘‘browser.switch_to_window(browser.window_handles[1])#方法一‘‘‘ for handle in browser.window_handles:#方法二,始终获得当前最后的窗口 browser.switch_to_window(handle) browser.find_element_by_xpath(".//*[@id=‘blog_userface‘]/a/img").click() #----------操作四:点击"贡献的资源"------------------------ #注意此时已经是新弹出的第二个窗口了,需要重新定位句柄 browser.switch_to_window(browser.window_handles[2])#方法一,注意window_handles[2]变成了2 ‘‘‘for handle in browser.window_handles:#方法二,始终获得当前最后的窗口 browser.switch_to_window(handle)‘‘‘ browser.find_element_by_link_text ("贡献的资源").click() time.sleep(3)
browser.quit( )

 

 

以上是关于opengl窗口中,拾取物体后,如何弹出新窗口,并在新窗口里显示所拾取物体的主要内容,如果未能解决你的问题,请参考以下文章

bat批处理start一个start.bat 如何不弹出新窗口或者弹出新窗口关闭旧窗口

C#中winform如何在弹出新窗口的时候进行判断

如何用JS打开新窗口,并关闭原来窗口

winform嵌入chromiumwebbrowser控件后怎么禁止弹出新窗口?

ie8浏览器打开网页自动弹出新窗口问题如何解决、

如何绘制一个可以在 OpenGL 中拾取物体的机械臂?